这是我的路线。rb:
resources :books, :path => "librairie" do
resources :chapters, shallow: true
end
resources :chapters do
resources :titles, shallow: true
end
resources :titles
这是我的模型:
class Book < ActiveRecord::Base
has_many :chapters
end
class Chapter < ActiveRecord::Base
belongs_to :book
has_many :titles
end
class Title < ActiveRecord::Base
belongs_to :chapter
end
我想做的是在图书馆中选择一本书,并查看包含所有章节和标题(属于每个章节)的页面。这个作品。(library = AllBooks || Book#Show =所有章节和标题的图书)
然后,单击标题并获得相应的文本页面。这也是可行的。(标题#显示)
现在我想在Title#Show视图的顶部添加一个按钮,如下所示:
书的标题:chapter: title和到书的链接(book #Show)
然而,在控制器中花费时间后,我开始完全迷失,我的结果看起来越来越差。我如何添加这样一个按钮?
好的,你可以这样做
class Title < ActiveRecord::Base
belongs_to :chapter
has_one :book, through: :chapter
end
然后在你的控制器中你可以输入
class TitlesController
def show
@title = Title.find(params[:id])
@book = @title.book
end
end
也就是说在你的视图中你可以做
<%= link_to book_path(@book) do %>
<%= "#{ @book.title } #{ @chapter.title } #{ @title.title }" %>
<% end %>
我想你在这里找到了before_action
的章节。