JSX文件中的Ruby Sinatra会话?

时间:2017-06-19 18:15:58

标签: ruby reactjs sinatra

我是整合react + ruby​​的新手,并且想知道是否有办法访问我存储的会话内容?

例如,在我的 public NavDrawerItem() { } public NavDrawerItem(boolean showNotify, String title) { this.showNotify = showNotify; this.title = title; } 中,我正在存储app.rb。我目前正在为我的UI使用reactjs,并希望在单击按钮时访问此return_url。有没有办法访问它?

我已经尝试过sessions[:return_url]=blah.com,但这不起作用,因为我在.jsx文件中并且无法解释这个哈哈(值得一试) )

任何提示都将不胜感激!

1 个答案:

答案 0 :(得分:1)

如果要在客户端读取与会话相关的非敏感数据,可以从服务器设置cookie并在客户端使用javascript读取它。

您可以使用Sinatra设置cookies,详见此处:http://www.sinatrarb.com/contrib/cookies

您可以使用Javascript阅读Cookie,详见此处:Read a javascript cookie by name

另一种方法是在服务器端呈现javascript并将值存储在javascript变量中。我相信你已经尝试过了:

<%= return_url = sesssions[:return_url] %>`

但这只是设置一个Ruby局部变量,在客户端丢失,也许你想将return_url设置为你想要点击的按钮的href

但是,如果您需要javascript单击处理程序中的变量,只需在ERB视图中呈现一个javascript变量:

var returnUrl = "<%= sessions[:return_url] %>";

通过上述内容,您应该可以在按钮点击处理程序中访问javascript变量returnUrl,前提是它位于相同或更高的词法范围内。