2016-01-20 151 views
0

我想添加一個簡單的消息形式與Ajax調用練習,但獲取關於模板的錯誤是缺少。錯誤顯示其設計(創業板)相關的錯誤。錯誤是Rails 4,Ajax模板丟失

使用{:locale => [:en],:formats => [:html],:variants => [],:handlers => [:erb]缺少模板消息/ create,application/create ,:builder,:raw,:ruby,:slim,:jbuilder]}。搜查:* 「/home/.rvm/gems/ruby-2.2.2/gems/devise-3.5.4/app/views」

守則內留言/ index.html.erb

<h1>Chat</h1> 

<ul id="chat"> 
    <%= render @messages %> 
</ul> 

<%= form_for Message.new, remote: true do |f| %> 

    <input name="authenticity_token" 
      type="hidden" 
      value="<%= form_authenticity_token %>"/> 
    <%= f.text_field :subject, placeholder: "Subject" %> 
    <%= f.text_field :content %> 
    <%= f.submit "Send" %> 
<% end %> 

局部視圖是_message.html.erb

<li> 
    <%= message.subject %>: <%= message.content %> 
</li> 

create.js.erb

$('#chat').append("< %= j render(@message) %>"); 
$("#message_content").val(''); 

,並創建控制器動作messages_controller.rb

def create 
    @message = Message.create!(params[:message]) 
    # respond_to do |format| 
    # format.html 
    # format.js { render 'create.js.erb' } 
    # end 
end 
+0

文件' create.js.html'應該叫做'create.js.erb',試試讓我們知道 –

+0

對不起,我的錯誤已經是** create.js.erb ** –

+0

我不認爲是設計問題,也許它會嘗試在您想運行腳本的同時嘗試使用html文件進行響應。爲了迴應js,你必須寫下:'respond_to do | format |如果@message = Message.create!(params [:message])format.js end' –

回答

1

在控制器的頂端定義respond_to :html, :js還是作爲@Popescu亞歷康斯坦丁說:

respond_to do |format| 
    format.js 
    format.html 
end 
+0

@Faian現在在此更改後出現錯誤** ActionController :: UnknownFormat **。 –

+0

請嘗試我的第一個建議,將'respond_to:js,:html'添加到控制器中的第一行。這將負責在響應標頭聲明javascript時呈現您的js模板。 –

+0

感謝回來。我已經嘗試過,但沒有成功。請任何其他建議。 –