我正在尝试从ajax响应中呈现部分内容。
//app/assets/javascript/pages/contact.js
$("#new_message").on("ajax:success", function(event, data, status, xhr) {
$("#new_message").prepend("<%=j( render 'layouts/error_messages', object: f.object) %>")
});
这是从消息控制器发送的
class MessagesController < ApplicationController
def contact
@message = Message.new(params[:message])
respond_to do |format|
if @message.valid?
ContactMailer.contact_me(@message)
format.html { redirect_to contact_path, notice: 'Message was sent successfully.' }
format.js { render nothing: true }
else
format.html { redirect_to contact_path }
format.js { render nothing: true }
end
end
end
end
我猜这个问题来自它不是部分的,我必须在我的format.js块中发送数据。
当调用ajax事件时,它会附加字符串而不是呈现它
编辑*将代码移动到contact.js.haml仍然使其返回为字符串
$("#new_message").prepend("j(render partial:'layouts/error_messages', object: f.object))")
答案 0 :(得分:0)
将其更改为
$("#new_message").prepend("#{ j(render partial:'layouts/error_messages', object: f.object)) }")
您可能想要更改f.object