Rails远程表单提交不起作用

时间:2013-04-16 11:55:21

标签: ajax ruby-on-rails-3 forms jquery

我正在尝试通过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") %>");

2 个答案:

答案 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)