artsnail
@artsnail

Как правильно создать и сохранить запись без hidden input?

Здравствуйте.

Имеем три таблицы users, questions, answers
users -> has_many questions & answers
questions -> has_many answers, belogs_to user
answers -> belongs_to user, belongs_to question

routes.rb
resources :questions do
resources :answers
end

answers_controller.rb
def create
@question = Question.find(params[:question_id])
@answer = @question.answers.build(answer_params)
if @answer.save
flash[:notice] = 'Ваш вопрос успешно создан'
redirect_to question_path(@question)
else
render 'questions/show'
end
end

form for answer
= form_for [@question, @answer] do |f|
= f.label :body, 'Ваш ответ'
= f.text_area :body, rows: 6
= f.submit 'Ответить'

Вопрос)
Как правильно роутинг и/или form и/или controller составить по rails way, чтобы запись ответа сохранялась, но при этом не использовать в форме
= f.hidden_field :user_id, value: current_user.id

Надеюсь смог донести суть вопроса)
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
artsnail
@artsnail Автор вопроса
Разобрался) спасибо

answers_controller.rb
def create
@question = Question.find(params[:question_id])
@answer = @question.answers.build(answer_params)
@answer.user = current_user
if @answer.save
flash[:notice] = 'Ваш вопрос успешно создан'
redirect_to question_path(@question)
else
render 'questions/show'
end
end
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Dem1
@Dem1 Куратор тега Ruby on Rails
Ruby on Rails developer
current_user.answers.build(answer_params.merge(question_id: params[:question_id])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы