簡體   English   中英

Rails的問題歸屬於

[英]Issue with rails belongs_to

大家只是想弄清楚為什么這行不通。 基本上這種關系確實

belongs_to :product_category, :foreign_key => :category_id

而這個不

belongs_to :category, :class_name => :product_category, :foreign_key => :category_id

錯誤消息是“ NameError:未初始化的常量product :: product_category”

這是為什么? 謝謝!

后一個示例不起作用,因為沒有名為product_category類。 您提供了錯誤的類名。 Ruby中的類名應使用CamelCase編寫。 當Rails尋找product_category類時,就不會找到它。

您的第一個示例之所以有效,是因為Rails從關系的名稱中推斷出類的名稱。

belongs_to :product_category, :foreign_key => :category_id

它將product_category轉換為ProductCategory 您可以自己做同樣的事情。 打開終端並輸入以下內容。

'product_category'.camelize.constantize

您應該改為輸入一個字符串:

belongs_to :category, :class_name => 'ProductCategory', :foreign_key => :category_id

但是在這種情況下,這將是多余的,因為Rails已經可以推斷出類名。 當無法從關系名稱推斷類名稱時,應使用class_name參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM