Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails “问题”;至“参数”;在轨_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails “问题”;至“参数”;在轨

Ruby on rails “问题”;至“参数”;在轨,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个页面模型,我想通过从标题创建的句柄找到它 class Page < ActiveRecord::Base belongs_to :user validates_presence_of :title def to_param handle end def self.make_url_safe(string) handle = string.titleize.gsub(/ /,'').underscore.dasherize[0..35]

我有一个页面模型,我想通过从标题创建的句柄找到它

class Page < ActiveRecord::Base
  belongs_to :user

  validates_presence_of :title

  def to_param
    handle
  end

  def self.make_url_safe(string)
    handle = string.titleize.gsub(/ /,'').underscore.dasherize[0..35] 
    "#{handle}/" 
  end

end
我正在用另一个模型做同样的事情,它工作得很好,但不是用Page。我不断地发现这个错误:

ActiveRecord::RecordNotFound in
PagesController#show

Couldn't find Page with ID=test
其中
test
是页面的句柄。我觉得几天前我创建模型时它还在工作,所以不确定是什么改变导致了问题。可能是尾随的
/

这是日志:

Started GET "/pages/test" for 127.0.0.1 at 2011-05-28 11:53:49 -0400
  Processing by PagesController#show as HTML
  Parameters: {"id"=>"test"}
  Page Load (0.2ms)  SELECT "pages".* FROM "pages" WHERE ("pages"."id" = 0) LIMIT 1
Completed   in 12ms

ActiveRecord::RecordNotFound (Couldn't find Page with ID=test):

我将发布一个答案,尽管上面的评论中给出了答案:CanCan干扰
to_param
——解决方案是授权控制器中的每个资源,而不是使用通用的
加载和授权资源

,看起来确实存在一个过滤器。您在控制器中设置了什么吗?Cancan的
load\u和\u authorize
确实加载了导致此类错误的数据。是的,我确实使用Cancan。我现在记得,我在使用另一个模型时遇到了问题。仅供参考:Rails具有
参数化
,这基本上是为了解决Bizzare
titleize.下划线.dasherize
链的问题`
Started GET "/pages/test" for 127.0.0.1 at 2011-05-28 11:53:49 -0400
  Processing by PagesController#show as HTML
  Parameters: {"id"=>"test"}
  Page Load (0.2ms)  SELECT "pages".* FROM "pages" WHERE ("pages"."id" = 0) LIMIT 1
Completed   in 12ms

ActiveRecord::RecordNotFound (Couldn't find Page with ID=test):