【问题标题】:how to make Javascript alert box display a variable from Rails controller如何使 Javascript 警报框显示来自 Rails 控制器的变量
【发布时间】:2016-05-28 16:18:39
【问题描述】:
我的视图文件中有这段 Javascript 代码:
<script>
function hint() {
var str = @user.name;
var name = str.toLowerCase();
alert(name);
}
</script>
我希望警报框显示用户名,因此我使用在控制器中定义的变量@user。但是,当我单击按钮以激活警报框时,什么都没有显示。我也试过 current_user.name,但也没有用。
如何在警告框中显示变量的值?
【问题讨论】:
标签:
javascript
ruby-on-rails
ruby-on-rails-3
【解决方案1】:
保持这样,就像在 html 文件中一样。
var str = '<%= @user.name %>';
【解决方案2】:
你也可以这样做:
alert("<%= @user.name.downcase %>");
【解决方案3】:
如果您有一个按钮,那么您不必编写任何 JavaScript 代码(假设确认对话框适合您)。您可以显示一个确认对话框,其中将 data: {confirm: "#{@user.name.downcase}"} 传递给您的 button/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}');" %>