Mat*_*ieu 3 ruby ruby-on-rails ruby-on-rails-3 activeadmin
我正在建立一个每日交易Rails应用程序来学习RoR.
我在过去的几个小时内遇到了一个问题:我无法获得活动管理员上其他相关模型的模型属性.让我告诉你确切的问题:
我有两种模式:品牌(即交易的品牌)和交易.交易属于品牌,但品牌可以有很多交易.
models/deal.rb是这样的:
class Deal < ActiveRecord::Base
belongs_to :brand
Run Code Online (Sandbox Code Playgroud)
我们有models/brand.rb:
class Brand < ActiveRecord::Base
has_many :deals
attr_accessible :name
Run Code Online (Sandbox Code Playgroud)
我在我的迁移中做了t.belongs_to,所以这没关系.
在Active Admin的交易'创建表单中,我输入与交易相关联的品牌作为管理员:
管理员/ game.rb
ActiveAdmin.register Deal do
# -- Form -----------------------------------------------------------
form do |f|
f.inputs "Brand (i.e. client)" do
f.input :brand_id, :label => "Select a brand:", :as => :select, :collection => Brand.all
end
Run Code Online (Sandbox Code Playgroud)
它工作得很好,我可以创建特定品牌的优惠.但我无法在我的交易列表中显示品牌的名称:
ActiveAdmin.register Deal do
index do
selectable_column
# id_column
column :title
column :deal_amount
column :brand do |deal|
link_to deal.brand.name
end
Run Code Online (Sandbox Code Playgroud)
......不起作用.
我怎样才能做到这一点 ?
我尝试了一切,但我基本上不知道如何获取品牌的名称,因为它与Deal的表中的brand_id相匹配.
任何帮助赞赏.
show do |f|
panel "Subject" do
attributes_table_for f, :name, :description, :is_visible
end
panel "Pages in List View" do
table_for(f.pages) do |page|
column :name
column :permalink
column :is_visible
end
end
panel "Pages in View " do
div_for(f.pages) do |page|
panel page.name do
attributes_table_for page, :name, :description, :is_visible
end
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
您可以使用与父模型相同的样式执行嵌套关系
| 归档时间: |
|
| 查看次数: |
9936 次 |
| 最近记录: |