我对双向has_many数据模型有疑问。我有两个模型:书和作者。
书可以有很多作者,作者可以有很多书
我在每个实体的控制器的'new'动作中创建了form来创建实体对象,我想让每个实体创建表单都可以获得带有复选框的其他实体对象的列表,这样用户就可以轻松选择,例如,现有作者的新书的作者,反之亦然。我该怎么做?
这是两个模型的代码:
class Book < ActiveRecord::Base
has_many :relationships
has_many :authors, through: :relationships
validates :name, presence: true, uniqueness: { case_sensitive: false }
end
class Author < ActiveRecord::Base
has_many :relationships
has_many :books, through: :relationships
validates :name, presence: true, uniqueness: { case_sensitive: false }
end
表格代码:
<%= form_for(@book) do |f| %>
<%= render 'shared/error_messages', object: @book %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.submit "Create book", class: "btn btn-large btn-primary" %>
<% end %>
<%= form_for(@author) do |f| %>
<%= render 'shared/error_messages', object: @author %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.submit "Create author", class: "btn btn-large btn-primary" %>
<% end %>