データベース構造に基づいて GUI を構築するためのアクティブな足場を備えた ruby-on-rails アプリがあります。ユーザーにはロールがあり、各ロールは一連の権限です。各権限は、ユーザーがこのコントローラーで実行することを許可されているかどうかに関係なく、コントローラーとアクションの組み合わせです。
# DATABASE!
create_table :rights do |t|
t.column :controller, :string, :limit => 32, :null => false
t.column :action, :string, :limit => 32, :null => false
end
create_table :rights_roles, :id => false do |t|
t.column :right_id, :integer
t.column :role_id, :integer
end
create_table :roles do |t|
t.column :name, :string, :limit => 32, :null => false
end
#MODELS!
class Role < ActiveRecord::Base
has_and_belongs_to_many :rights
class Right < ActiveRecord::Base
has_and_belongs_to_many :roles
# ROLE CONTROLLER!
class RoleController < ApplicationController
active_scaffold :role do |config|
config.columns = Array[:name, :rights]
config.columns[:rights].form_ui = :select
私は現在、不便なロールの次の編集ウィンドウを持っています (オプションは構造化されていません。より多くのアクションがあるため、恐ろしいでしょう):
http://postimage.org/image/4e8ukk2px/
次のようなヘルパー メソッドを作成します。
module RoleHelper
def rights_form_column (record, input_name)
...
end
end
これは、「権限」列の入力方法を指定するフォームを定義するために必要です。しかし、私はそれを書く方法がわかりません。望ましい形式は次のとおりです。
administration
action1(checkbox)
action2(checkbox)
configuration
action1(checkbox)
...
activescaffold が古いことはわかっていますが、使用する必要があります... 助けてください!