使用form_for时,NoMethodError / undefined方法`foobar_path'

时间:2012-11-25 09:58:57

标签: ruby-on-rails-3

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

效果很好。
我一直在寻找类似的问题,但没有一个解决方案对我有用。帮助

1 个答案:

答案 0 :(得分:1)

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

form_for @chatroom, :url => some_other_path