我是 Ruby on Rails 的新手,我想创建一个非常简单的网站,我可以在其中保存一些引用。我有几个表: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 填充为 0 而不是正确的作者 ID。我认为错误是当我尝试从名称中检索 Id 时,但我不知道如何修复它,也许有一个更简单的解决方案!
谢谢 !