den*_*min 2 ruby-on-rails associations
基于以下型号
class Company < ActiveRecord::Base
has_and_belongs_to_many :origins
end
class Origin < ActiveRecord::Base
has_and_belongs_to_many :companies
end
Run Code Online (Sandbox Code Playgroud)
我希望在我companies/_form的代表所有来源的复选框中有.
不知道Company.new(params[:company])in in是否companies_controller#create可以创建公司与所选起源之间的关联?
我正在运行rails 3.0.0,实现这一目标的最佳方法是什么?
感谢您的见解
habtm现在不是一个受欢迎的选择,最好使用has_many:通过相反的方式,在它们之间使用适当的连接模型.这将为您提供方法Company#origin_ids =,您可以从表单传递一组原始ID,以设置@company的所有关联起源.例如
<% current_origin_ids = @company.origin_ids %>
<% form_for @company do |f| %>
<label>Name:<%= f.text_field :name %></label>
<% Origin.all.each do |origin| %>
<label><%= origin.name %>
<%= check_box_tag "company[origin_ids][]", origin.id, current_origin_ids.include?(origin.id) %>
</label>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
另外,使用适当的连接模型和相应的控制器,您可以使用AJAX轻松添加/删除原点,使用对连接模型控制器的创建/删除调用.
| 归档时间: |
|
| 查看次数: |
5799 次 |
| 最近记录: |