NoMethodError в сообщениях # index, ошибка с form_for - PullRequest
2 голосов
/ 31 января 2012

Я нашел несколько решений этой проблемы, но ни один из них, похоже, не работает для меня.В мои messages / index.html.erb я поместил:

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

, а в моем Контроллере сообщений:

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

и в моем route.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 Ответ

2 голосов
/ 31 января 2012

form_for, способ, которым вы его используете, ожидает, что ваши маршруты будут установлены в качестве ресурса для контроллера.

Вы должны иметь в своих маршрутах

resources :messages

Это предоставит вамбудут все остальные URL-адреса

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

...