貼code

2017年2月15日 星期三

Rails 5的外部鍵問題

Rails 5中有個更新,就是以往外部鍵的驗證要自己加,也就是說外部鍵可以是nil。但在Rails 5中,這個設定被取消了。也就是說,所有的外部鍵都必須要存在。而最近的案子中好死不死就需要讓一個order可以是非會員所下的。也就是order的user_id要為nil。要怎麼辦呢?

提供以下兩種做法:

  1. 直接在belongs_to: xxx 後面加上 optional: true
  2. 在controller裡加入(套用在整個application)

Rails.application.config.active_record.belongs_to_required_by_default = false
參考資料:http://blog.bigbinary.com/2016/02/15/rails-5-makes-belong-to-association-required-by-default.html

沒有留言:

張貼留言