Rails3控制器忽略参数


class TagController < ApplicationController
 def show
  @videos = Video.tagged_with(params[:id])
  respond_to do |format|
    format.html # show.html.erb
  end
 end
end

日志:

Started GET "/tag/node.js" for 127.0.0.1 at 2011-06-13 23:10:59 +0100
Processing by TagController#show as JS
Parameters: {"id"=>"node"}

目前,我将node.js作为params[:id]的值传递,但不知何故(根据日志(,我的应用程序仅将node作为参数值传递。

如何确保值node.js被传递到我的控制器中?

提前谢谢。

啊,路由中的(.:format)正在被Rails吃掉;CCD_ 6被用于确定格式。

因此,一个简单的解决方案可能是:

respond_to do |format|
  format.html # show.html.erb
  format.js   { render <erb file used for html> }
end

但是,这"感觉"不对,因为您使用format返回的不是那种格式的东西(当请求.js时,我们返回HTML(

如果可以的话,您应该将"node.js"更改为其他值,如"node_js"。否则,请研究在机架中使用parse_queryparse_nested_query

或者,您可以定义/重新定义路线,而不在末端附加(.:format)

相关内容

  • 没有找到相关文章

最新更新