簡體   English   中英

Rails:attr_accessor 關聯

[英]Rails: attr_accessor association

你好,我是rails的初學者。

我有兩個模型UserSubscriptionsSubscriptionPlan

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.

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