[英]Rails: attr_accessor association
你好,我是rails的初學者。
我有兩個模型UserSubscriptions
和SubscriptionPlan
。
user_subscription.rb
class UserSubscription < ApplicationRecord
attr_accessor :new_plan_id
belongs_to :subscription_plan
belongs_to :new_plan_id, class_name: 'SubscriptionPlan', foreign_key: :new_plan_id
end
subscription_plan.rb
class SubscriptionPlan < ApplicationRecord
has_many :user_subscriptions
end
我想將new_plan
作為subscription_plan
計划 model 的 object 獲得。 我仍然無法得到這個。 請幫忙。
先感謝您。
你永遠不想在 Rails 模型中使用attr_accessor
。*
attr_accessor
在普通的舊 ruby 對象中用於生成實例變量的訪問器方法。 如果您在 Rails model 中使用attr_accessor
,那么您正在破壞它通過讀取數據庫模式創建的 setter 和 getter。
結果是保存時屬性不會被持久化。 這是因為屬性沒有存儲在屬性 hash 中,並且沒有標記為臟。 它也不會包含在任何使用屬性 api 的方法中,例如#attributes
或#to_json
。
它也將打破協會。
class UserSubscription < ApplicationRecord
belongs_to :subscription_plan
belongs_to :new_plan, class_name: 'SubscriptionPlan'
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.