2015-04-18 2 views
0

Я используюКак передать параметры через приложение rails?

Rails Версия: 4.2.0

ОС: Windows 7

У меня есть 3 активных моделей записей. (Пользователь, сообщение и комментарий) с

пользователя

has_many :posts 
has_many :comments 

сообщение

belongs_to :user 
has_many :comments 

Комментарий

belongs_to :user 
belongs_to :post 

Н ow, если я (зарегистрированный пользователь) хотел создать комментарий со страницы показа публикации. Как мне передать идентификатор сообщения в действие для создания комментария?

Единственный способ, которым я могу думать, было бы что-то вроде этого:

Поста Показать страницу

link_to 'Create comment', new_comment_path(post_id: @post.id) 

новая страница комментария (внутри формы) создать действие

hidden_field_tag ':post_id', params[:post_id] 

комментария

@comment = current_user.comments.build(comment_params) 
@comment.post_id = params[':post_id'] 

Это чувствует себя неряшливо, это правильный путь или есть более простой способ?

ответ

0

Вы можете использовать вложенные ресурсы:

resources :posts 
    resources :comments 
end 

Ваша ссылка будет идти на new_post_comment_path(@post)

Внутри вашего CommentsController, вы будете иметь доступ к params[:post_id] с пути, чтобы создать свой комментарий.

Другой вариант - использовать объект формы (не поддерживаемый ActiveRecord моделью), но это звучит как излишество для вашего прецедента.

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