私は Ruby on Rails を初めて使用します。いくつかの引用を保存できる非常に単純な Web サイトを作成したいと考えています。いくつかのテーブルがあります: Citation と Autor。対応するモデルは次のとおりです。
class Citation < ActiveRecord::Base
belongs_to :autor
attr_accessible :text, :autor_id
end
class Autor < ActiveRecord::Base
has_many :citations
attr_accessible :name
end
ユーザーが新しい著者に続く新しい引用を作成するときに、著者が自動的に作成されるようにしたいと思います。
ここに私の citations_controller の一部があります:
def create
# Here I check if the autor already exist or not, if not, I create him (The user gave me his name)
if !(Autor.exists?(:name => params[:citation][:autor_id]))
Autor.create(:name => params[:citation][:autor_id])
end
#As I only have the name of the autor, I try to retrieve his Id
params[:autor_id] = Autor.where(:name => params[:citation][:autor_id]).first.id
@citation = Citation.new(params[:citation])
end
ポイントは、新しい引用を作成すると、フィールド autor_id が、autor の正しい ID ではなく 0 で埋められることです。名前からIDを取得しようとしたときに間違いだと思いますが、修正方法がわかりません。おそらくもっと簡単な解決策があります!
ありがとうございました !