我正在尝试通过ajax / js提交表单。当我设置:remote =>是的,它仍然通过html提交。
<%= form_for(@message), :remote => true, do |f| %>
<%= f.label :Note_To_Doctor %>
<%= f.text_field :note %>
<%= f.collection_select(:physician_id, Physician.all, :id, :physician_name )%>
<%= f.button :send, :class => 'btn btn-info' %>
<% end %>
我本可以发誓我已经这样做了。我是否需要创建一个create.js.erb,如果是这样,应该在其中进行什么。另外,我应该将创建操作作为响应块放在哪里?
控制器:
def create
@message = Message.new(params[:message])
if @message.save
MessageMailer.paging(@message).deliver
respond_to do |format|
format.html { redirect_to messages_path, flash.notice = "Message was sent" }
format.js { render "index" }
end
else
@message = Message.new(params[:message])
end
end
index.js.erb的
$("#messages").html("<%= escape_javascript render("messages") %>");
答案 0 :(得分:1)
将form_for替换为,
<%= form_for(@message, :remote => true) do |f| %>
答案 1 :(得分:0)
在您的情况下,:remote=>true
无效,您应该尝试此解决方案。 Submit form in rails 3 in an ajax way (with jQuery)