1

我正在尝试通过 ajax/js 提交表单。当我设置 :remote => true 它仍然通过 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") %>");
4

2 回答 2

1

只需将 form_for 替换为,

<%= form_for(@message, :remote => true) do |f| %>
于 2013-04-16T11:58:03.910 回答
0

在您的情况下,:remote=>true您应该尝试此解决方案。以ajax方式在rails 3中提交表单(使用jQuery)

于 2014-08-08T06:33:22.907 回答