デフォルトでは、モデルの関連付けは rails_admin の [新規追加] タブに表示されます。ただし、rails_admin.rb ファイルを変更し、config.model を使用してビューに表示されるフィールドをカスタマイズすると、明らかにビューから削除されます。
私の例では、顧客とユーザーがいます。
ユーザー.rb
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :name, :email, :password, :password_confirmation, :remember_me, :role, :company, :customer_id
belongs_to :customer
end
Customer.rb
class Customer < ActiveRecord::Base
attr_accessible :city, :name, :state, :street, :zip, :container_id, :user_id
has_many :users
end
rails_admin ダッシュボードにログインして新しいユーザーを追加すると、顧客を選択するドロップダウン オプション、新しい顧客を追加するボタン、および顧客を編集するボタンが表示されます。ただし、config.model を rails_admin.rb に追加すると、
rails_admin.rb
config.model 'User' do
list do
field :name do
label "Name"
end
field :email do
label "Email"
end
field :company do
label "Company"
end
field :role do
label "Role"
end
end
edit do
field :name do
label "Name"
end
field :email do
label "Email"
end
field :company do
label "Company"
end
field :role do
label "Role"
end
field :role, :enum do
enum do
['1a', '1b', '2a', '2b', '3a', '3b', '4a', '4b', '5']
end
label "Role"
end
end
create do
field :name do
label "Name"
end
field :email do
label "Email"
help "The email address will serve as the username."
end
field :password do
label "Password"
end
field :password_confirmation do
label "Password Confirmation"
help "Required"
end
field :company do
label "Company"
end
field :role, :enum do
enum do
['1a', '1b', '2a', '2b', '3a', '3b', '4a', '4b', '5']
end
label "Role"
end
end
end
これにより、ユーザーを追加するときに持っている関連付けフィールドが上書きされます。私の質問は、rails_admin でユーザーを追加するときにモデルの関連付けを表示することを rails_admin 構成に明示的に伝えるために、rails_admin で使用する必要がある構文は何かということです。
ありがとう!