Rails 4带路由的深度嵌套



这是我的路线。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的章节。

相关内容

  • 没有找到相关文章

最新更新