在 Java 脚本 if-else 块中设置 Ruby 变量

Set Ruby variable in Java Script if-else block

我有这个 java 脚本代码块:

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

url = "<%= users_with_status_path(:user_status => @user_status) %>";

我正在使用此变量 @user_status 进行 AJAX 调用。问题是无论条件如何,这个变量总是设置为 "pending"。为什么会这样?

您不能为 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>