gpt4 book ai didi

ruby-on-rails - Rails 3 has_and_belongs_to_many 在 View 中创建复选框

转载 作者:行者123 更新时间:2023-12-04 03:50:15 26 4
gpt4 key购买 nike

基于以下模型

class Company < ActiveRecord::Base
has_and_belongs_to_many :origins
end

class Origin < ActiveRecord::Base
has_and_belongs_to_many :companies
end

我想在我的 companies/_form 中包含一组代表所有来源的复选框。

不知道 companies_controller#create 中的 Company.new(params[:company]) 是否可以创建公司与所选来源之间的关联?

我正在运行 Rails 3.0.0,实现它的最佳方法是什么?

感谢您的见解

最佳答案

habtm 现在不是一个流行的选择,最好使用 has_many :through 代替,并在两者之间使用适当的连接模型。这将为您提供 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 %>

顺便说一句,使用适当的连接模型和相应的 Controller ,您可以使用对连接模型 Controller 的创建/删除调用,使用 AJAX 轻松添加/删除源。

关于ruby-on-rails - Rails 3 has_and_belongs_to_many 在 View 中创建复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com