rails:simple_for 对于关联模型的特殊技巧

来源:互联网 发布:iptables 只开放80端口 编辑:程序博客网 时间:2024/06/06 11:04

rails :simple_form for

 对于相关联的 模型对象,在表单中可以直接将与之关联的模型作为字段

比如:

class User < ActiveRecord::Base  

    belongs_to :company  

    has_and_belongs_to_many :roles  

  end  

   

  class Company < ActiveRecord::Base  

    has_many :users  

  end  

   

  class Role < ActiveRecord::Base  

    has_and_belongs_to_many :users  

  end 


这样3个模型:

 user < ————— >role

 user <————— > company


那么我写一个用于创建user 对象的表单的时候,如果希望在表单中选择一个与之关联的company或者role的时候,我就可以利用上面所说的特性,方便地将关联的模型提交

<%= simple_form_for @user do |f| %>  

   <%= f.input :name %>  

   <%= f.association :company %>  

   <%= f.association :roles %>  

   <%= f.button :submit %>  

 <% end %> 


如上,这样的表单在页面会显示两个下拉框,用于选择现有role company对象,表单提交后,会将id提交

最终控制器中对应方法拿到的参数会是{user: {name: xx’,company_id: xx,role_id: xx}}

不过关联字段不一定是id,要看模型具体指定的关联字段是哪个