我是rails的新手,我正在创建一个基本的博客应用程序。
当我创建一个帖子时,它有一个作者。如果找到作者,则会显示该作者创建的帖子列表,但是当您选择帖子时,它不会链接到帖子,而是会给我以下错误:
ActiveRecord::RecordNotFound in PagesController#show
Couldn't find Page with ID=2
app/controllers/pages_controller.rb:8:in `show'
{"id"=>"2"}
页面控制器中的代码如下:
def show #Show action
@page = Page.find(params[:id])
当我从作者菜单中选择链接时,它似乎没有找到正确的页面ID,因为它正在路由到2,3,4等,当帖子的URL更像是28,29,30时如果我直接从索引菜单中找到帖子,那么链接到帖子就可以了。
任何帮助将不胜感激。
答案 0 :(得分:0)
<% @author.pages.each do |p| %>
<%= link_to p.title, [[p.url]] %>
<% end %>
将“[[p.url]]”替换为您设置网址的方式
{:controller => 'pages', :action => 'show', :id => p.id}
然后根据自己的喜好进行格式化。
答案 1 :(得分:0)
我怀疑你将一个不同的对象传递给作者页面上方法链接的page_path参数,下面是一个erb示例,用于显示作者的页面列表并链接到它们:
<ul>
<% @author.pages.each do |page| %>
<li><%= link_to page.title, page_path(page) %></li>
<% end %>
</ul>