Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails表单标签Ajax Format.js ActionController::UnknownFormat_Javascript_Ruby On Rails_Ruby_Ajax_Form For - Fatal编程技术网

Javascript Rails表单标签Ajax Format.js ActionController::UnknownFormat

Javascript Rails表单标签Ajax Format.js ActionController::UnknownFormat,javascript,ruby-on-rails,ruby,ajax,form-for,Javascript,Ruby On Rails,Ruby,Ajax,Form For,我有一个用于发送电子邮件的表单标签,我想使用AJAX,这样只有表单可以更新,其余的看起来都一样 contact.html.erb <%= form_tag(site_contact_path, remote: true, class: 'response form-horizontal', authenticity_token: true) do %> <h2 class="contact-title">Parašykite mums</h2>

我有一个用于发送电子邮件的表单标签,我想使用AJAX,这样只有表单可以更新,其余的看起来都一样

contact.html.erb

<%= form_tag(site_contact_path, remote: true, class: 'response form-horizontal', authenticity_token: true) do %>
        <h2 class="contact-title">Parašykite mums</h2>
        <div class="form-group">
          <label class="control-label col-sm-4" for="name">Vardas</label>
          <div class="col-sm-8">
            <%= text_field_tag 'name', nil, placeholder: 'Įveskite vardą', class: 'form-control', autocomplete: 'on' %>
          </div>
        </div>

        <div class="form-group">
          <label class="control-label col-sm-4" for="email">El. paštas</label>
          <div class="col-sm-8">
            <%= text_field_tag 'email', nil, placeholder: 'Įveskite el.paštą', class: 'form-control', autocomplete: 'on' %>
          </div>
        </div>

        <div class="form-group">
          <label class="control-label col-sm-4" for="comment">Komentarai</label>
          <div class="col-sm-8">
            <%= text_area_tag 'comment', nil, placeholder: 'Jūsų komentaras', class: 'form-control', autocomplete: 'on', rows: '6' %>
          </div>
        </div>
        <%= hidden_field_tag :authenticity_token, form_authenticity_token %>
        <div class="button-holder"> 
            <%= submit_tag 'Siųsti', class: 'submit' %>
        </div>
        <div class="hidden">
            <p>Ačiū! (Mes pasistenksime atsakyti Jums, kuo greičiau)</p>
        </div>
    <% end %>
site_controller.rb

def contact_send_email
@name = params[:name]
@email = params[:email]
@comment = params[:comment]

ContactMailer.send_message(@name, @email, @comment).deliver

respond_to do |format|
    format.js
end
end
联系_发送_email.js.erb

$('.form-group').hide();
$('.button-holder').hide();
$('.hidden').show();
日志

当我按下submit按钮时,电子邮件已发送,但由于某种原因,contact\u send\u email action无法找到contact\u send\u email.js.erb或不理解format.js
我尝试在StackOverflow上搜索类似问题,但解决方案似乎没有任何效果。

在表单标签中,将第一个参数
site\u contact\u path
更改为
contact\u path
。 同时将路线上的线路更改为:

post '/contact' => 'site#contact_send_email', defaults: { format: 'js' }
这会解决你的问题

 ActionController::UnknownFormat (ActionController::UnknownFormat):  app/controllers/site_controller.rb:24:in `contact_send_email'
post '/contact' => 'site#contact_send_email', defaults: { format: 'js' }