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 に答える