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_query
或parse_nested_query
。
或者,您可以定义/重新定义路线,而不在末端附加(.:format)
。