从rails模型中获取相关模型?

时间:2014-02-23 11:03:34

标签: ruby-on-rails ruby-on-rails-3

在保存我的Payment模型之前,我想为其他模型Post设置一个属性。

我的付款belongs_to :user和我的用户有has_many :postshas_many :payments

在我的payment.rb中,我有一个before_create :set_expiration_date回调。

如何设置帖子模型的截止日期?

是这样的吗?

def set_expiration_date
    self.User.Post.last.expiration =  Date.today + self.duration.days
end

由于付款尚未保存在数据库中,因此before_create会创建甚至是否有效,因此与User的关联?

如果我关心1对1协会付款邮寄会不会很简单?

我按以下方式保存我的付款记录:

#Payment.rb
def save_with_payment
  if valid?
      Stripe::Charge.create(
      :amount => 3000,
      :currency => "usd",
      :card => stripe_card_token,
      :description => "Charge for test@example.com")
    end
    save!
  end

付款模式确实有user_id属性,但似乎总是为

  SQL (1.1ms)  INSERT INTO "payments" ("amount", "created_at", "transaction_number", "updated_at", "user_id") VALUES (?, ?, ?, ?, ?)  [["amount", nil], ["created_at", Sun, 23 Feb 2014 14:50:42 UTC +00:00], ["transaction_number", nil], ["updated_at", Sun, 23 Feb 2014 14:50:42 UTC +00:00], ["user_id", nil]]

谢谢

1 个答案:

答案 0 :(得分:0)

post = self.user.posts.last
post.expiration =  Date.today + self.duration.days
post.save!