我正在尝试使用Ajax调用添加一个简单的消息表单,但是缺少关于模板的错误。错误显示其设计(gem)相关的错误。错误是
缺少模板消息/创建,应用/创建{:locale => [:en],:formats => [:html],:variants => [],:handlers => [:erb,:builder,:raw,:ruby,:slim,:jbuilder]}。搜索范围:* “/home/.rvm/gems/ruby-2.2.2/gems/devise-3.5.4/app/views”
messeges / 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 :(得分:1)
在控制器顶部定义respond_to :html, :js
,或者像@Popescu一样,Alexandru Constantin说:
respond_to do |format|
format.js
format.html
end