嗨,我正在尝试使用 Rails on Rest 2 - 带有 Rails 4 的电影列表教程,并在我使用新 Rails 时进行调整。我被电影角色的关联所困。我已添加到 Movie.rb
class Movie < ActiveRecord::Base
has_many :roles, :dependent => :destroy
has_many :people, :through => :roles
validates_presence_of :title
def new_role=(values)
values.each do |i, hash|
unless hash[:name].blank?
roles.create(:person_id => hash[:person_id], :name => hash[:name])
roles.save
end
end
end
def deleted_roles=(values)
values.each do |role_id|
roles.find(role_id).destroy
end
end
end
并显示我渲染的 _Form.html.rb (下面的摘录)
<b>Add New People</b><br />
<% (1..3).each do |i| %>
<%= select_tag 'movie_new_role_person_id', options_for_select(@people), {
:name => "movie[new_role][#{i}][person_id]"
} %>
<%= text_field_tag 'movie_new_role_name', '', {
:name => "movie[new_role][#{i}][name]"
} %><br />
<% end %>
</p>
<p>
<%= f.submit "Update" %>
</p>
它呈现列表以供选择,但是当我提交时 - 没有任何内容写入数据库表。如果我在数据库中手动输入数据,那么它会显示在电影列表页面上,即:“斯蒂芬斯皮尔伯格 - 导演”等......任何帮助表示赞赏 - 在这个阶段让我发疯
我认为这可能是参数驱动的限制,但我没有关联样式参数过滤器的好例子
谢谢
艾伦