我希望你能帮我弄清楚为什么我会犯这个奇怪的错误。
我有以下表格:
index.html.erb
<%= form_for :response, :url => {:action => 'create'}, :remote => true do |f| %>
<%= f.hidden_field :template_id, :value => @template.id %>
<%= button_tag(type: 'submit', class: "btn btn-primary btn-lg pull-right next-slide") do %>
Next →
<% end %>
<% end %>therapy_controller.erb
def create
@response = Response.new(response_params)
respond_to do |format|
if @result = @response.save
format.html
format.js
else
format.html { render :action => "new" }
format.js
end
end
end意见/治疗/create.js.erb
<% if @result %>
alert("Success!");
<% else %>
alert("Fail!");
<% end %>但是,当我提交表单时,会出现以下错误:
缺少模板: 缺少模板疗法/创建,应用程序/创建与{:locale=>:en,:formats=>:html,:handlers=>:erb,:builder,:ruby,:ruby,:coffee,:jbuilder,:slim}。搜索:*..。
知道我为什么会犯这个错误吗?我不知道是什么引起的。
谢谢!
更新:
所以,我已经尝试了MrYoshiji,Dave和Pavan的建议,但是我还是遇到了同样的错误。因此,在我的therapy_controller.erb中,我将其更改为:
respond_to do |format|
format.js
end现在,我发现了一个错误:
ActionController::UnknownFormat in TherapyController#create 有什么想法吗?
更新2:以下是服务器日志:
Started POST "/therapy" for 152.79.45.121 at 2014-05-15 18:01:21 +0000
Processing by TherapyController#create as HTML
Parameters: {"utf8"=>"✓", "response"=>{"template_id"=>"2"}, "commit"=>"Save Response"}
Completed 406 Not Acceptable in 1ms
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/therapy_controller.rb:13:in `create'routes.rb文件在这里:https://gist.github.com/dodinas/fb0a39282022e961ce09
谢谢。
发布于 2014-05-09 16:55:00
试试这个
def create
@response = Response.new(response_params)
respond_to do |format|
if @result = @response.save
format.html
format.js { render 'create.js.erb' }
else
format.html { render :action => "new" }
format.js
end
end
end发布于 2014-05-21 11:09:54
错误来自浏览器请求HTML数据,而控制器只接受js。我建议将:format => :js添加到form_for的index.html.erb选项中:
<%= form_for :response, :url => {:action => 'create', :format => :js}, :remote => true do |f| %>来源
https://stackoverflow.com/questions/23569460
复制相似问题