2012-07-06 12 views
0

我是ruby​​/rails的新手,嘗試創建更新會話中變量的鏈接。我在application_helper.rb--定義下面的方法我把它放在這裏,希望這是有它正確的地方,以便它可以用於所有的所有觀點:如何創建將執行應用程序幫助器方法的鏈接(或按鈕)?

module ApplicationHelper 

    def add_workspace_to_session(workspace_id) 
    session[:workspace_id] = workspace_id 
    end 

end 

在我要創建一個簡單的鏈接視圖(或按鈕),將調用此助手,傳入工作區ID以便更新session[:workspace_id]。我如何在視圖中創建此鏈接?使用link_to?我錯過了一些...與路線有關?

謝謝!

+1

查看幫助器可以將邏輯卸載到視圖文件中,它們不會對操作做出響應。你將要創建一個控制器動作,它可以做你想做的事,把它連接到路由和link_to – DVG 2012-07-06 22:55:39

+0

你必須更新**控制器**中的'session'。助手是**查看**。 – 2012-07-07 16:24:06

+0

DVG,謝謝我最終做了你所說的並且使得這個方法成爲一個控制器動作,然後添加了一個路由到它 – FireDragon 2012-07-13 22:19:53

回答

2

如果你正在創建一個按鈕或鏈接,它應該指向一個url路徑,而不僅僅是一個輔助方法。快速解決這個問題是添加一個輔助方法的路徑。

注:我沒有通過傳遞參數進行測試。

def add_workspace_to_session(workspace_id, url) 
     session[:workspace_id] = workspace_id 
     url 
    end 

<%= button_to "Store Workspace", add_workspace_to_session(workspace_id, root_path), :method => :get %> 
+0

您可能還想將url作爲參數傳遞,以便該幫助程序可用於多個url。 – edralph 2012-07-07 08:44:05

+0

同意了,添加到我的答案。 – 2012-07-07 16:14:16

相關問題