如何使Javascript警告框显示Rails控制器中的变量

时间:2016-05-28 16:18:40

标签: javascript ruby-on-rails ruby-on-rails-3

我在我的视图文件中有这段Javascript代码:

<script>
function hint() {
    var str = @user.name;
    var name = str.toLowerCase();

    alert(name);
}
</script>

我希望警告框显示用户名,因此我使用在我的控制器中定义的变量@user。但是,当我单击按钮激活警报框时,没有任何显示。我也尝试过current_user.name,但它也没有用。 如何在警告框中显示变量的值?

3 个答案:

答案 0 :(得分:3)

保持这样,就像在html文件中一样。

 var str = '<%= @user.name %>';

答案 1 :(得分:1)

你也可以这样做:

alert("<%= @user.name.downcase %>");

答案 2 :(得分:1)

如果您有一个按钮,那么您不必编写任何JavaScript代码(假设确认对话框适合您)。您可以显示一个确认对话框,其中data: {confirm: "#{@user.name.downcase}"}已传递给您的按钮/ submit / link_to助手:

<%= f.submit 'Save', data: { confirm: "#{@user.name.downcase}" } %>

此外,它还可让您取消按钮/链接点击。

没有JavaScript的另一个选择是在按钮/链接上使用onclick事件:

<%= f.submit 'Save', onclick: "alert('#{@user.name.downcase}');" %>

或将用户名作为参数传递给JavaScript函数:

<%= f.submit 'Save', onclick: "your_function('#{@user.name.downcase}');" %>