[英]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.