【发布时间】:2015-06-25 19:59:52
【问题描述】:
我是 Rails 的新手,在尝试在 haml 模板中的咖啡脚本中使用 ruby 辅助方法中的变量时遇到了复杂的问题。
这是我在haml中的代码
:coffee
$('input#field').blur ->
input = $('input#field').val()
#{ ruby_method( input )}
ruby_helper.rb
def ruby_method (arg)
if arg
@model = Model.new(arg)
end
end
这会导致如下错误
未定义的局部变量或方法
也试过实例变量
:coffee
$('input#field').blur ->
@input = $('input#field').val()
#{ ruby_method( @input )}
这不能传递给辅助方法。
如何在 ruby 辅助方法中获取 javascript 变量?
提前致谢!
【问题讨论】:
-
coffeescript 在浏览器中运行,但 Ruby 在服务器上。如果您需要从您的视图与您的控制器/模型进行通信,您可以提交一个表单,
params将拥有表单内容或使用 Ajax。从您的代码看来,您实际上想将@video从您的辅助方法传递到视图。您可以直接在您的视图(haml 文件)中引用@video,它会在您设置样式时呈现其内容。希望这会有所帮助。 -
实际上我想在填充输入字段后获取@video,因此将参数传递给控制器是我想要的答案。我会试试看。谢谢!
标签: ruby-on-rails ruby coffeescript haml