Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.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 Rails路由错误,对象被分配给参数键?_Ruby On Rails_Routes - Fatal编程技术网

Ruby on rails Rails路由错误,对象被分配给参数键?

Ruby on rails Rails路由错误,对象被分配给参数键?,ruby-on-rails,routes,Ruby On Rails,Routes,我有小测验和问题 class Question < ActiveRecord::Base belongs_to :quiz def to_param quesion_permalink end end class Quiz < ActiveRecord::Base has_many :questions def to_param permalink end end 当我在测验#显示页面中放置链接问题路径(q)时,我得到以下错误: No

我有小测验和问题

class Question < ActiveRecord::Base
  belongs_to :quiz

  def to_param
    quesion_permalink
  end
end

class Quiz < ActiveRecord::Base
  has_many :questions

  def to_param
    permalink
  end
end
当我在测验#显示页面中放置链接问题路径(q)时,我得到以下错误:

No route matches {:controller=>"questions", :action=>"show", :permalink=>#<Question id: 2, question: "Is Ruby a Scripting Language?", quiz_id: 2, question_permalink: "q1", created_at: "2013-12-28 21:36:25", updated_at: "2013-12-28 21:36:25", order: 1>, :questions_permalink=>nil, :format=>nil} missing required keys: [:questions_permalink]
没有路由匹配{:controller=>“questions”、:action=>“show”、:permalink=>#、:questions\u permalink=>nil、:format=>nil}缺少必需的键:[:questions\u permalink]

我看到我想查看的问题被设置为
:permalink
键的对象。为什么会这样?我该怎么做呢?
:permalink
是测验permalink和
:question\u permalink
是问题peramlink?

你的路线需要两个参数:
:permalink
:questions\u permalink
。您需要为每个参数传递一个对象。根据您发布的内容,我认为以下方法可行:

question_path(quiz, question)

在终端上使用get而不是matchrun commqand rake ROUTS,并找到相应的url帮助程序。@SamD没有difference@NitinJ这就给出了我正在使用的
问题路径
。您有一个问题。to_参数
question_path(quiz, question)