2011-06-13 104 views
0
class TagController < ApplicationController 

def show 
    @videos = Video.tagged_with(params[:id]) 

    respond_to do |format| 
    format.html # show.html.erb 
    end 
end 

end 

登錄:的Rails 3控制器忽略參數

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傳遞到我的控制器?

在此先感謝。

回答

2

啊,路由中的(.:format)正在被Rails吃掉;正在使用.js來確定格式。

所以,這是一個簡單的解決方法可能是:

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 or parse_nested_query in Rack

或者你可以定義/重新定義路線,而不需要將末尾的(.:format)固定。