2015-09-21 4 views
0

Есть две модели: User, кто делает комментарии (предоставленные Devise) и Audio, о которых они комментируют. На каждой странице audios#show должны быть перечислены все комментарии к этому аудио, и есть небольшая форма, через которую можно отправить другую.Как настроить правильные маршруты для формы act_as_commentable?

Я сделал Audioacts_as_commentable. Затем я убедился, что Comment belongs_to :user и Userhas_many :comments.

Для маршрутов, у меня есть

resources :audios do 
    resources :comments 
end 

Затем на audios_controller,

def show 
    if user_signed_in? 
    @comment = @audio.comments.new 
    end 
end 

Тогда я написал простую form_for(@comment) форму с 'комментарий' поле и кнопку отправки. Вот и все.

Ошибка, которую я получаю при загрузке страницы: undefined method 'comments_path'. Я искал эту ошибку, прочитал ответы StackOverflow и попробовал form_for(@audio, @comment). Это получает ошибку ** не может написать неизвестный атрибут «html».

Я немного в тупике; У меня есть модели и отношения, набросанные на моем блокноте, но я неопытен, и использование вещей, которые я не совсем понимаю, например, «Задуматься за кулисами», бросает меня за цикл. Если бы кто-нибудь мог дать мне подсказку на этих маршрутах/формах, мне это понравилось бы.

ответ

0

Попробуйте

form_for [@audio, @comment] 

или

form_for @comment, url: audio_comment_path(@audio, @comment) 
1

В routes.rb вам необходимо иметь следующее:

# routes.rb 
resources :comments, :only => [:create, :destroy] 

:comments маршрут проходит в одиночку, вне от ресурса вы пытаетесь для добавления комментариев.

Затем, если вы запустите rake routes он вернется:

$ rake routes 
comments POST  /comments(.:format)  comments#create 
comment  DELETE /comments/:id(.:format)  comments#destroy 

Это даст вам помощник comments_path помощника и comment_path(:id), чтобы завершить POST и DELETE запросов.

Проверить этот учебник, он мне очень помог, когда мне нужно использовать этот драгоценный камень: http://twocentstudios.com/blog/2012/11/15/simple-ajax-comments-with-rails/

+0

Это работало отлично подходит для меня. Благодаря! – aLostMonkey

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