2

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

<%= 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 %> 

Как ca n Я исправляю это?

ответ

2

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

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

resources :messages 

Это обеспечит вам будет все в спокойной URL в

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

+0

обалденный. Спасибо. – varatis

Смежные вопросы