2012-08-06 46 views
0

我很努力與redign_to添加一個參數使用邪惡 我跟着Railscast並閱讀github頁面上的信息,但不能得到它的工作。 我想創建一個對象插件,保存後應該有可能添加東西。鐵軌邪惡的寶石redirect_to與參數

這裏是我的了:

plugins_controller:

def create 
    @plugin = Plugin.new(params[:plugin]) 
    if @plugin.save 
    redirect_to plugins_steps_path, :plugin_id => @plugin.id 
    end 
end 

plugins_steps控制器:

def show 
    @plugin = Plugin.find(params[:plugin_id]) 
    render_wizard 
end 

路線:

resources :plugins_steps 

我從來沒有得到任何參數的笑在plugins_steps中的w方法是否有辦法解決這個問題? 我也試了幾種方法redirect_to的一樣:

redirect_to :controller: "plugins_steps", :action => "show", :plugin_id => @plugin.id 

redirect_to({:plugin_id => @plugin.id }) 

非常感謝你。

回答

0

plugins_steps_path是索引操作的路徑。如果您想要顯示操作,請使用plugin_step_path(即步驟必須是單數)。運行rake routes來驗證這一點。 此外,不要調用參數:plugin_id,只需使用:id並相應地更新您的show controller。

+0

Thx爲您的迴應。同時,我通過將插件對象放入會話中來解決它,以便在整個創建過程中訪問它。但我不確定這是否是一種好方法? – Flo 2012-08-30 09:00:42

+2

不建議將數據存儲在會話中,而不是id。這樣,如果修改數據庫表,會話將自動反映新的模式,而不是包含陳舊的信息。這也是一個安全風險,因爲客戶端可以訪問會話並可以對其進行修改。我給你的解決方案使用標準的Rails方法來做你想做的事情,所以它確實是最好的解決方案。 – 2012-08-30 15:03:21

+0

非常感謝您向我解釋,真的很感激。 – Flo 2012-08-31 05:26:16