Ruby on rails 如何创建将执行应用程序助手方法的链接(或按钮)?

Ruby on rails 如何创建将执行应用程序助手方法的链接(或按钮)?,ruby-on-rails,ruby-on-rails-3,link-to,Ruby On Rails,Ruby On Rails 3,Link To,我不熟悉ruby/rails,正在尝试创建链接来更新会话中的变量。我在application\u helper.rb中定义了以下方法--我把它放在这里,希望这是放置它的正确位置,以便它可以用于所有视图: module ApplicationHelper def add_workspace_to_session(workspace_id) session[:workspace_id] = workspace_id end end 在视图中,我想创建一个简单的链接(或按钮),

我不熟悉ruby/rails,正在尝试创建链接来更新会话中的变量。我在
application\u helper.rb中定义了以下方法--
我把它放在这里,希望这是放置它的正确位置,以便它可以用于所有视图:

module ApplicationHelper

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

end
在视图中,我想创建一个简单的链接(或按钮),调用这个助手,传入一个工作区ID,以便它更新
会话[:workspace\u ID]
。如何在视图中创建此链接?使用链接到?我错过了一些…与路线有关的东西


谢谢

如果要创建按钮或链接,则应将其指向url路径,而不仅仅是帮助器方法。解决这个问题的一个快速方法是向helper方法添加路径

注意:我没有通过传递参数来测试这一点

    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 %>
def将工作区添加到会话(工作区id,url)
会话[:工作区\u id]=工作区\u id
网址
结束
:获取%>

视图帮助程序用于从视图文件中卸载逻辑,它们不响应操作。您需要创建一个控制器操作,该操作执行您想要的操作,将其连接到路由中,并链接到您必须在控制器中更新的
会话
。Helpers for view.DVG,谢谢,我最终按照您所说的做了,并将此方法作为控制器操作,然后添加到it@DVG因为我最终使用了你的解决方案,所以我想给你一些分数。你能重新发布作为答案吗?或者我缺少一些方法来实现这一点?您可能还希望将url作为参数传入,以便帮助器可以用于多个url。