动态查找在轨道3

时间:2011-05-03 20:52:41

标签: ruby-on-rails ruby-on-rails-3

所以,我有一个非常简单的代码,在Rails 2中运行得很好,但在Rails 3中有所不同。

在Rails 2中,我有以下内容用于使用Page模型中的查看器控制器显示页面内容:

class ViewerController < ApplicationController
show
  @page = Page.find_by_name(params[:name])
end

我的观看者节目视图包含以下内容:

<%= @page.body %>

我的routes.rb文件有以下内容来处理此操作:

 map.view_page ":name", :controller => 'viewer', :action => 'show'

以下是使用此代码在Rails 3中获得的错误:

undefined method `body' for nil:NilClass

现在,我知道必须在Rails 3中更改路由,但是我还缺少什么才能使这个简单的代码在Rails 3应用程序中运行?我似乎无法在任何地方找到答案。谢谢!

3 个答案:

答案 0 :(得分:2)

match ":name", :to => "viewer#show", :as => "view_page"

未经测试不确定它是否与“/:name”匹配,或者“:name”也可以。

答案 1 :(得分:0)

好的,Rails 3有新的路由sintax

get "/:name" => 'viewer#show'

有用的链接:

<强> UPD

您的错误是因为Rails找不到包含:name的任何网页:

  • 没有任何具有此名称的页面
  • 您的params哈希
  • 中根本没有任何名称

答案 2 :(得分:0)

确保您的数据库的正文字段中填充了某些东西,它应该就像您拥有它一样。

domain.com/viewer/show?name=home