Rails getter 和 setter 方法问题?
Rails getter and setter method issue?
内部 user.rb 模型
before_save :update_stripe
def update_stripe
if customer_id.nil? #line 1
if !stripe_token.present? #line 2
raise "Stripe token not present. Can't create account."
end
customer = Stripe::Customer.create(
:email => email, #line 3
:card => stripe_token, #line 4
)
self.role = "owner" #line 5
end
end
当我执行 'role = "owner"' 时,它不会设置 'role' setter 但执行 'self.role = "owner"' 时会设置它,在 'line 5' 中,如何? 'customer_id'、'stripe_token'、'email' 和 'stripe_token' getter 也可以在 'line 1'、[=30 中没有 'self' 关键字的情况下获取值=]、'line 3' 和 'line 4'。怎么样?
做 setter_method = val,意味着,您实际上在您的方法中创建了一个局部变量,而不是访问您的 setter,如 Frederick Cheung 提供的 link 中所述。
内部 user.rb 模型
before_save :update_stripe
def update_stripe
if customer_id.nil? #line 1
if !stripe_token.present? #line 2
raise "Stripe token not present. Can't create account."
end
customer = Stripe::Customer.create(
:email => email, #line 3
:card => stripe_token, #line 4
)
self.role = "owner" #line 5
end
end
当我执行 'role = "owner"' 时,它不会设置 'role' setter 但执行 'self.role = "owner"' 时会设置它,在 'line 5' 中,如何? 'customer_id'、'stripe_token'、'email' 和 'stripe_token' getter 也可以在 'line 1'、[=30 中没有 'self' 关键字的情况下获取值=]、'line 3' 和 'line 4'。怎么样?
做 setter_method = val,意味着,您实际上在您的方法中创建了一个局部变量,而不是访问您的 setter,如 Frederick Cheung 提供的 link 中所述。