web-dev-qa-db-ja.com

Ruby on Rails

土壇場で接続したRuby on Railsアプリケーション用の本当に迅速で汚い管理バックエンドを構築したいと思います。 activescaffoldを見て合理化され、どちらも非常に魅力的で、簡単に実行できるはずだと思いましたが、どちらもバックエンド管理ページとして設定する方法がよくわかりません。標準のように機能するように設計されているようですRuby on Railsジェネレーター/足場。モデル-ビュー-コントローラー-テーブル名に対応する可視フロントエンドを作成します。

プレーヤーがすでに使用されていて、関連ファイルに影響を与えないようにしたい場合、admin_playersインターフェイスをどのように作成しますか?

元のリソースの表示、編集、およびインデックスは、管理者が使用することはできません。

28
srboisvert

名前空間は、ここで発生する問題の解決策だと思います。

map.namespace :admin do |admin|
    admin.resources :customers
end

ルートadmin_customersnew_admin_customersなどを作成します。

次に、app/controllerディレクトリ内にadminディレクトリを作成できます。 adminディレクトリ内に、adminコントローラーを作成します。

./script/generate rspec_controller admin/admin

class Admin::AdminController < ApplicationController

  layout "admin"
  before_filter :login_required
end

次に、管理顧客コントローラーを作成します。

./script/generate rspec_controller admin/customers

そして、これをApplicationControllerから継承します。

class Admin::CustomersController < Admin::AdminController

これにより、app/views/admin/customersでビューが検索され、app/views/layouts/admin.html.erbでレイアウトが期待されます。

その後、実際に管理、合理化、ActiveScaffoldを実行したいプラグインまたはコードを使用できます。個人的には、resourcecs_controllerを使用したいものは何でも使用できます。これにより、 [〜 #〜] rest [〜#〜] スタイルのアーキテクチャであり、そのルートを強制することで、他の場所で多くの時間を節約できます。ただし、アプリケーションを継承した場合、それは今のところ重要なポイントです。

53
Laurie Young

https://github.com/gregbell/active_admin でactive_adminをチェックアウトしてください。

6
phoet

私はStreamlinedをかなり広範囲に使用しました。

Streamlineを機能させるには、独自のコントローラーを作成します。これにより、実際にはアプリケーションの他の部分とは別に完全に実行できます。また、で保護できる別の「admin」フォルダーと名前空間で実行することもできます。

最近のアプリのCustomersコントローラーは次のとおりです。

class CustomersController < ApplicationController
  layout 'streamlined'
  acts_as_streamlined       

  Streamlined.ui_for(Customer) do
    exporters :csv   
    new_submit_button :ajax => false 
    default_order_options :order => "created_at desc"   
    list_columns :name, :email, :mobile, :comments, :action_required_yes_no  
  end
end
5
Toby Hede
1
rafamvc