0
我是Ruby on Rails的新手,我想創建一個非常簡單的網站,我可以保存一些引文。 我有幾個表:Citation和Autor,這裏是相應的模型。如何從存儲在Ruby數據庫中的對象獲取id?
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時,但我不知道如何解決它,也許有一個更簡單的解決方案!
謝謝!
我認爲方法存在?()只返回一個布爾值......你確定寫「temp = Autor.exists?(...)」是正確的嗎? – n0n0bstan
嘿,我很抱歉它應該在哪裏而不是存在? 現在它可以完美運行 –
我得到了一些像「被調用的id爲零,這將錯誤地爲4 - 如果你真的想要nil的id,使用object_id」,你知道它來自哪裏嗎? – n0n0bstan