【问题标题】:Set Ruby variable in Java Script if-else block在 Javascript if-else 块中设置 Ruby 变量
【发布时间】:2016-06-26 10:03:37
【问题描述】:

我有这个 java 脚本代码块:

if(cond1){
  <% @user_status = "new" %>
} else if(cond2){
  <% @user_status = "active" %>
} else if(cond3){
  <% @user_status = "inactive" %>
} else{
  <% @user_status = "pending" %>
}

url = "&lt;%= users_with_status_path(:user_status =&gt; @user_status) %&gt;";

我正在使用这个变量@user_status 进行 AJAX 调用。问题是,无论条件如何,此变量始终设置为“待定”。为什么会这样?

【问题讨论】:

  • 当该 JS 被执行时,您是否意识到您的 ruby​​ 变量早已不复存在?
  • 提示:查看将由此生成的 javascript 代码。
  • 您必须分配常规 JS 变量并仅在 javascript 中构建您的 url。这里没有适合你的红宝石。

标签: javascript ruby-on-rails ruby-on-rails-4 instance-variables


【解决方案1】:

您不能为 javascript 块内的 ruby​​ 变量赋值。

您需要创建 javascript 变量。

<script>

var status = ''
if(cond1){
  status = "new"
} else if(cond2){
 status = "active" 
} else if(cond3){
status = "inactive" 
} else{
status = "pending" 
}

url = "/user status path?user_status="+status;

you ajax call
</script>

【讨论】:

  • 是的,这就是我所做的。
猜你喜欢
  • 2021-09-14
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 2021-12-28
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多