我正在使用form_for创建一个聊天室,当我查看该页面时,我收到以下错误:
NoMethodError in Chatrooms#new
undefined method `chatrooms_path' for #<#<Class:0xa862b94>:0xa5307f0>
以下是该视图的代码,位于app / views / chatrooms / new.html.erb中:
<div class="center">
<%= form_for(@chatroom) do |f| %>
<%=f.text_field :topic%>
<br>
<%=f.submit "Start a discussion", class: "btn btn-large btn-primary"%>
<% end %>
</div>
这是相关的控制器:
class ChatroomsController < ApplicationController
def new
@chatroom = Chatroom.new
end
def show
@chatroom = Chatroom.find(params[:id])
end
end
如果我改变了行
<%= form_for(@chatroom) do |f| %>
到
<%= form_for(:chatroom) do |f| %>
效果很好。
我一直在寻找类似的问题,但没有一个解决方案对我有用。帮助
答案 0 :(得分:1)
这是因为您没有为ChatroomsController
创建路线/操作。当您呈现new
表单时,它默认指向创建操作,如果要更改处理程序操作,请使用
form_for @chatroom, :url => some_other_path