所以,我有一个非常简单的代码,在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应用程序中运行?我似乎无法在任何地方找到答案。谢谢!
答案 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