【问题标题】:Ruby - Ajax: update session value when clicking on a linkRuby - Ajax:单击链接时更新会话值
【发布时间】:2009-11-05 00:02:04
【问题描述】:

我在控制器中有这个 ruby​​ 函数

def updateSession value
   case value
   when 1,2
     session[:value]=1
   when 3,4
     session[:value]=2
   end
end

我有不同的链接重定向到不同的页面。 我想在点击这些链接时通过调用 updateSession 函数来更改会话值

有可能吗?如果可以,怎么做?

【问题讨论】:

    标签: ruby-on-rails ajax session


    【解决方案1】:

    您可以添加路线:

    map.update_session 'update_session', :controller => "session", :action => "update"
    

    然后我假设您正在尝试从用户参数中获取“价值”,因此您可以使用以下内容生成链接:

    <%= link_to "Update Session - 1", update_session_path(:value => 1) %>
    

    然后将以下内容添加到您的控制器以根据提供的参数进行操作:

    def update_session
      value = params[:value].to_i
      case value
      when 1,2
        session[:value] = 1
      when 3,4
        session[:value] = 2
      end
    end
    

    【讨论】:

    • ty 可以正常工作,但是有没有办法在状态和地址栏中隐藏 url。因为当用户将鼠标放在链接上时,他可以看到地址,复制/粘贴它并更改参数值。我想避免这种情况。
    • 我迟到了将近 3 年才发表评论,但我不得不说:您的操作不应允许用户提交非法参数。简单地隐藏参数是不够的安全性。如果您只想隐藏参数以使其看起来不错,请考虑使用通过单击链接触发的 javascript 调用您的操作。
    猜你喜欢
    • 2014-05-17
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 2013-07-08
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    相关资源
    最近更新 更多