2

我正在使用 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| %>

它工作正常。
我四处寻找类似的问题,但没有一个解决方案对我有用。帮助?

4

1 回答 1

1

这是因为您没有为ChatroomsController. 当您呈现new表单时,它默认指向创建操作,如果您想更改处理程序操作,请使用

form_for @chatroom, :url => some_other_path
于 2012-11-25T11:00:48.850 回答