Messages#index中的NoMethodError,带有form_for的错误

时间:2012-01-31 05:08:10

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 form-for

我找到了解决这个问题的多种解决方案,但它们似乎都不适用于我。在我的messages / index.html.erb中,我提出了:

<%= form_for(@message, :remote => true) do |f| %>
<%= f.text_field :content %>
<%= f.submit "Send" %>
<% end %>

并在我的MessagesController中:

  def index
    @message = Message.new
    @messages = Message.all
  end

和我的routes.rb:

get "/messages/index"

但出于某种原因,我收到错误:

NoMethodError in Messages#index
undefined method `messages_path' for #<#<Class:0x0000010207d7c8>:0x0000010205c6b8>

Extracted source (around line #5):

2:  <%= render @messages %>
3: </ul>
4: 
5: <%= form_for(@message, :remote => true) do |f| %>
6:  <%= f.text_field :content %>
7:  <%= f.submit "Send" %>
8: <% end %>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

form_for,您使用它的方式,希望您的路由被设置为控制器的资源。

你的路线应该有

resources :messages

这将为您提供所有宁静的网址

http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions