被这个卡住了一段时间,所以我想我会把它扔在那里。
我有两个模型和一个连接模型:
class Container < ActiveRecord::Base
has_many :theme_containers
has_many :themes, :through => :theme_containers
end
class Theme < ActiveRecord::Base
has_many :theme_containers
has_many :containers, :through => :theme_containers
end
class ThemeContainer < ActiveRecord::Base
belongs_to :container
belongs_to :theme
end
盛大。我知道这种关联是有效的,因为在控制台中,当我输入 Theme.first.containers 和 Theme.first.theme_containers 时,我得到了我期望的模型(我暂时手动创建了 theme_container 实例)。
问题是,在我的主题表单中,我希望能够更新连接数据(theme_containers)的属性。
这是我的表格的简化版本:
<%= form_for(@theme) do |f| %>
<%= f.fields_for :theme_containers do |builder| %>
<%= render 'theme_container_fields', f: builder %>
<% end %>
<% end %>
当我运行它时,container_fields 部分只呈现一次,并且构建器对象似乎正在查看原始的 @theme 对象。我的方法在这里有什么明显的错误吗?我正在尝试做的事情可能吗?
另外,我正在运行 rails 4,所以我没有使用accepts_nested_attributes_for,并且我设置了强大的参数。我认为这不会影响我的具体问题,而只是把它扔在那里。
谢谢!