我有一个作者页面,显示数据库中的所有作者。
<h1>Listing authors</h1>
<table>
<tr>
<th>Name</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @authors.each do |author| %>
<tr>
<td><%= author.name %></td>
<td><%= link_to 'Show', author %></td>
<td><%= link_to 'Edit', edit_author_path(author) %></td>
<td><%= link_to 'Destroy', author, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<%= link_to 'New Author', new_author_path %>
对于每个作者,您单击显示,以显示他们自己的页面。
<p>
<b>Name:</b>
<%= @author.name %>
</p>
<%= link_to 'Edit', edit_author_path(@author) %> |
<%= link_to 'Back', authors_path %>
现在我为书籍设置了相同的设置,用户可以在其中输入新书籍,在数据库中显示和编辑书籍。
然后我建立了一个名为 authorbooks 的模型,它使用has_many
,belongs_to
在 author.rb、book.rb 和 authorbook.rb 的模型中保存作者和书籍之间的关系。
我希望作者的显示页面显示与他们相关的每一本书。
我该怎么办?我是 Rails 新手,还在学习,所以请记住回答。提前致谢。
编辑每个模型的模型代码:
作者.rb
class Author < ActiveRecord::Base
attr_accessible :name
validates :name, :presence => true
has_many :authorbooks
has_many :books, :through => :authorbooks
end
书本.rb
class Book < ActiveRecord::Base
attr_accessible :name
validates :name, :presence => true
has_many :authorbooks
has_many :authors, :through => :authorbooks
end
作者书.rb
class Authorbook < ActiveRecord::Base
attr_accessible :author_id, :book_id
belongs_to :book
belongs_to :author
end