首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4-缺少模板

Rails 4-缺少模板
EN

Stack Overflow用户
提问于 2014-05-09 16:17:59
回答 2查看 4.6K关注 0票数 3

我希望你能帮我弄清楚为什么我会犯这个奇怪的错误。

我有以下表格:

index.html.erb

代码语言:javascript
复制
<%= 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 &rarr;
     <% end %>
<% end %>

therapy_controller.erb

代码语言:javascript
复制
 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

代码语言:javascript
复制
<% 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中,我将其更改为:

代码语言:javascript
复制
respond_to do |format|
  format.js
end

现在,我发现了一个错误:

代码语言:javascript
复制
ActionController::UnknownFormat in TherapyController#create 

有什么想法吗?

更新2:以下是服务器日志:

代码语言:javascript
复制
 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

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-09 16:55:00

试试这个

代码语言:javascript
复制
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

来源

票数 5
EN

Stack Overflow用户

发布于 2014-05-21 11:09:54

错误来自浏览器请求HTML数据,而控制器只接受js。我建议将:format => :js添加到form_for的index.html.erb选项中:

代码语言:javascript
复制
<%= form_for :response, :url => {:action => 'create', :format => :js}, :remote => true do |f| %>

来源

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23569460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档