Rails应用程序中的链接问题

时间:2011-04-23 15:17:32

标签: ruby-on-rails

我是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时如果我直接从索引菜单中找到帖子,那么链接到帖子就可以了。

任何帮助将不胜感激。

2 个答案:

答案 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>