使用 link_to Rails 设置会话变量
Posted
技术标签:
【中文标题】使用 link_to Rails 设置会话变量【英文标题】:Set session variable with link_to Rails 【发布时间】:2012-08-16 03:24:27 【问题描述】:是否可以使用 link_to 设置会话变量?我不想设置参数,因为我有几个重定向,它会被清除。
即我想通过链接将会话变量“modelid”设置为“you”。
我想在 FB 登录 oauth 运行时设置会话变量...
<%= link_to "New Post", "#", :class => "btn btn-primary btn-large inline pull-left", :onclick => "FB.login(function(response),perms:'email, publish_stream, user_photos');" %>
【问题讨论】:
【参考方案1】:您可以在其中一个控制器中创建一个设置此会话变量的操作,然后使用 AJAX 请求调用它。
路线:
post "/myroute", :to=>"some_controller#set_my_session_var"
some_view.html.erb(jQuery 示例):
$(function()
$("#my-button").click(function()
$.post('/myroute');
)
)
some_controller.rb:
def set_my_session_var
session[:somekey]='somevalue'
end
【讨论】:
我正在控制器的方法中设置会话变量,并尝试在另一个控制器中访问相同的变量。但它告诉我价值为零!我在设置时检查了变量中是否设置了值 您究竟向 /myroute 操作发送了什么?或者换句话说,如何将数据发送到该操作 我有同样的问题,在设置会话值的方法上重定向后设置值不再存在。以上是关于使用 link_to Rails 设置会话变量的主要内容,如果未能解决你的问题,请参考以下文章