我认为这很容易通过查看代码来解释,因此我发布了一些片段,展示了我通常如何在 Rails 3.2 中执行 Ajax 操作,
以下将起作用:
create.js.coffee
$("<%= raw j(render(partial: @comment, locals: { str: 'string' })) %>")
.appendTo("ul#comments")
_comment.html.haml
-puts "The variable's value is #{str}"
%li= comment.what
现在,我想做与上面相同的事情,但不是传递 JS 字符串文字,而是传递一个对象文字,如下所示:
create.js.coffee
obj =
'v1': 'value'
'v2': 'value'
$("<%= raw j(render(partial: @comment, locals: { o: obj })) %>")
.appendTo("ul#comments")
当然失败的原因如下: ActionView::Template::Error (undefined local variable or method `obj'...
有人知道如何完成我想要做的事情吗?有可能吗?让我知道我正在尝试做的事情是否疯狂,如果是这样的话,正确的方法是什么..
谢谢!