首页 > 解决方案 > 如果文本来自控制器变量,Rails 确认弹出文本不显示

问题描述

submit_tagRails 视图的确认弹出窗口中,我尝试使用 Rails 控制器中的实例变量。在我的控制器中,我定义了我的变量,例如

@confirmation_msg = "test"

然后在我.haml看来,我尝试将变量作为确认提示文本插入到我的submit_tag.

= submit_tag "Increase Limits", { onclick: "return confirm(#{@confirmation_msg})", class: "btn btn-danger"}

但是现在我的确认提示现在弹出为空白,没有文字。取消和确定按钮仍然存在。如果我更改"return confirm(#{@confirmation_msg})""return confirm('test')"我看到“测试”。当我尝试使用控制器中的变量时,为什么它是空白的?

标签: javascriptruby-on-railsruby-on-rails-5

解决方案


您是在设置字符串还是其他?

@confirmation_msg = test <--- is this a variable that holds a string or you mispelled "test"?

如果@confirmation_msg最后是一个字符串,则用(单引号或双引号)将其括起来:

"return confirm('#{@confirmation_msg}')"

如果您有新行和/或特殊字符,最好也转义内容:

"return confirm('#{ j @confirmation_msg }')"

(该j方法是该方法的一个方便的别名escape_javascript


推荐阅读