Ruby on rails Rails 4带布线的深嵌套
这是我的路线。rb:Ruby on rails Rails 4带布线的深嵌套,ruby-on-rails,ruby,routing,nested-resources,Ruby On Rails,Ruby,Routing,Nested Resources,这是我的路线。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
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
classbook
我想做的是在图书馆里选择一本书,然后看到一个包含所有章节和标题(属于每一章)的页面。这很有效。(图书馆=所有书籍| |书籍#展示=包含所有章节和标题的书籍)
然后,单击标题并获得一个页面以查看相应的文本。这也行得通。(标题#秀)
现在我想在Title#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 %>
我假设你在这里找到了行动之前的章节。好的,你可以这样做
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 %>
我想你在这里找到了行动前的章节。你的模型是如何布置的<代码>书有很多章节
,章节有很多:标题
?只需属于
?感谢您的编辑和回复。模型:书籍:课程书籍书有很多章节
,章节有很多:标题
?只需属于
?感谢您的编辑和回复。模型:书籍:课程书籍def show
@title=title.find(params[:id])
因为这本书没有被识别出来。不确定是否理解这一行:
有一本:书,通过::章
,但我会在rails指南中查找,我可能错过了一些相关内容。非常感谢!!非常感谢你。因此,我还没有掌握Rails,我已经找到了基于您的解决方案:def show
@title=title.find(params[:id])
因为这本书没有被识别出来。不确定是否理解这一行:
有一本:书,通过::章
,但我会在rails指南中查找,我可能错过了一些相关内容。谢谢