在其他实体的对象创建表单中获取与has_many相关的实体对象

时间:2014-05-24 19:41:40

标签: ruby-on-rails ruby data-modeling embedded-ruby

我对双向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 %>

0 个答案:

没有答案