2
我有一個用於發送電子郵件的form_tag,我想使用AJAX,以便只有表單可以更新,其餘部分看起來相同。Rails Form_Tag Ajax Format.js ActionController :: UnknownFormat
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 %>
的routes.rb
post '/contact' => 'site#contact_send_email'
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
contact_send_email.js.erb
$('.form-group').hide();
$('.button-holder').hide();
$('.hidden').show();
日誌
ActionController::UnknownFormat (ActionController::UnknownFormat): app/controllers/site_controller.rb:24:in `contact_send_email'
當我按下提交按鈕,將郵件發送是但似乎出於某種原因contact_send_email動作無法找到contact_send_email.js.erb或不理解format.js 我已經嘗試在StackOverflow上搜索類似的問題,但解決方案似乎沒有任何效果。