rails admin属于下拉列表

时间:2015-08-04 13:25:19

标签: rails-admin belongs-to

我从管理页面管理我的数据库,并希望从下拉列表中为一个组分配一个组。

所以我现在拥有的是:

标记表:

id       | int(11)      | PRIMARY 
name     | varchar(255) |
group_id | int(11)      |

组表:

id       | int(11)      | PRIMARY 
name     | varchar(255) |

indic.rb

belongs_to :group

rails_admin do 
  list do 
    field :id
    field :name
    field :group_id
  end
  edit do
    field :name
    field :group_id
  end
end

group.rb:

has_many :indic

rails_admin do 
  list do 
    field :id
    field :name
  end
  edit do
    field :name
  end
end

这样就没有下拉列表(我的意思是从列表中选择数据库中每个组的组),我甚至不确定它们是否已链接,因为我可以放置组表中不存在的group_id。 / p>

我在其他答案中发现我需要将编辑字段更改为field :group_id, :belongs_to_association,但如果我这样做,则会在加载页面时出错:

  

显示/home/ma/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rails_admin-0.6.5/app/views/rails_admin/main/edit.html.haml其中第2行提出:

     对于#<

未定义的方法`klass' RailsAdmin :: Adapters :: ActiveRecord :: Property:0x007fd3f99d1e38>

     

= rails_admin_form_for @object,url:edit_path(@ abstract_model,@ object.id),as:@ abstract_model.param_key,html:{method:“put”,multipart:true,class:“form-horizo​​ntal denser”, data:{title:@page_name}} do | form |

     

= form.generate action :: update

任何人都知道如何解决这个问题?同样对于下拉列表,id列表会很好,但是一个完美的解决方案(我不知道是否可能)将列出那些group.id的名称。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案,这真的是愚蠢的,没有完成链接,因为有些人误解了" s"在关键词的末尾,必须在表上进行编辑,而不是id列

这是正确的解决方案:

<强> indicator.rb:

belongs_to :group   # no "s" for belongs_to

rails_admin
  ...      
    edit
      field :group  # table name, not the name of the reference column !
  ...

indic.rb:

has_many :indics   # need "s" for has_many

这一切都按预期工作,默认情况下列表名称,所以我的奖金也完成了:)