Я пытаюсь сделать так, чтобы при сохранении ответа я также сохранил prop_id, связанный с этим ответом.RoR: Сохранять информацию от 3 моделей одновременно
У меня есть отношение вложенных маршрутов, так что каждая подсказка (означает предложение или ставка) имеет связанный ответ вроде этого: http://localhost:3000/props/1/answers/new.
Прямо сейчас, когда я сохраняю ответ, я сохраняю выбор ответа и user_id, который создал ответ. Мне нужно сохранить также опору, связанную с ответом.
Ответы Контроллер:
class AnswersController < ApplicationController
attr_accessor :user, :answer
def index
end
def new
@prop = Prop.find(params[:prop_id])
@user = User.find(session[:user_id])
@answer = Answer.new
end
def create
@prop = Prop.find(params[:prop_id])
@user = User.find(session[:user_id])
@answer = @user.answers.create(answer_params)
if @answer.save
redirect_to root_path
else
render 'new'
end
end
def show
@answer = Answer.find params[:id]
end
end
private
def answer_params
params.require(:answer).permit(:choice, :id, :prop_id)
end
Ответ Модель
class Answer < ActiveRecord::Base
belongs_to :prop
belongs_to :created_by, :class_name => "User", :foreign_key => "created_by"
has_many :users
end
Prop Модель
class Prop < ActiveRecord::Base
belongs_to :user
has_many :comments
has_many :answers
end
пользователя Модель
class User < ActiveRecord::Base
has_many :props
has_many :answers
has_many :created_answers, :class_name => "Answer", :foreign_key => "created_by"
before_save { self.email = email.downcase }
validates :username, presence: true, uniqueness: {case_sensitive: false}, length: {minimum: 3, maximum: 25}
has_secure_password
end