-3
<script>
  function check()
  {
    <% if !user_signed_in? %>
    alert("Sign in to order");
    <%redirect_to :path=>new_user_session_path%>
    <% else %>
    <% if current_user.points < form.order_total.value %>
    <%redirect :path=>credits_path%>
    <% end %>
    <% end %>
  }
</script>

我已经在订单新页面中写了这个。我写这个是为了响应 onclick 动作。我在这里做错了什么?我也试过

<% redirect_to new_user_sessions_path %> 和另一个类似。我应该如何改变才能使它起作用?

我得到的错误是

undefined method `redirect_to'
4

1 回答 1

2

您可以使用window.locationjavascript 重定向用户并使用路径助手通过 Rails 获取位置。像这样的东西

   <script>
      function check()
      {
        <% if !user_signed_in? %>
           alert("Sign in to order");
           window.location = "<%= j new_user_session_path %>";
        <% elsif current_user.points < form.order_total.value %>
            window.location = "<%= j credits_path %>";
        <% end %>
      }
    </script>

请注意,Rails 部分在发送到客户端之前已被解析。所以 if else 语句不会在客户端执行。

于 2013-09-23T07:08:27.070 回答