【发布时间】:2020-09-05 18:37:30
【问题描述】:
我有一个部分正在使用 CommentsController 呈现。让我们将此部分称为 _edit_comment.html.haml,我将在其中传递实例变量 @comment。
$("#edit-comment-#{object.id}").html('#{ escape_javascript(render :partial => 'edit_comment', locals: { story: @comment.story, comment: @comment }) }')
在我的部分中,我有 JS,我想在单击按钮时调用它。
= form_with model: [story.industry, story, comment], class: "w-100" do |f|
%fieldset.w-100
= f.text_area :content, rows: 2, hide_label: true, class: 'px-2 py-1', placeholder: "Leave a comment"
%fieldset
= f.submit "Update", class: 'btn submit text-white mt-2'
%span.btn.cancel.text-white.mt-2 Cancel-
:javascript
$(document).ready( function() {
$('.cancel').click(e => {
console.log("#{@comment}")
})
} );
我知道“#{}”适用于字符串,但我希望能够访问整个对象。目前,控制台的结果将是
#<Comment:0x000055971a9c5278>
我需要获取整个 ruby 对象,因为我想将它作为变量传递给另一个将要渲染的部分。像这样的:
:javascript
$(document).ready( function() {
$('.cancel').click(e => {
$("#edit-comment-#{object.id}").html('#{ escape_javascript(render :partial => 'edit_comment', locals: { story: "#{@comment}".story, comment: "#{@comment}" }) }')
})
} );
这可能吗?
【问题讨论】:
标签: javascript ruby-on-rails haml ujs