我想添加一个简单的消息形式与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
文件' create.js.html'应该叫做'create.js.erb',试试让我们知道 –
对不起,我的错误已经是** create.js.erb ** –
我不认为是设计问题,也许它会尝试在您想运行脚本的同时尝试使用html文件进行响应。为了回应js,你必须写下:'respond_to do | format |如果@message = Message.create!(params [:message])format.js end' –