【问题标题】:Rails5 how to refactor a find_or_create_byRails5 如何重构 find_or_create_by
【发布时间】:2021-12-17 01:56:50
【问题描述】:

我有一些旧代码正在尝试移植到 Rails 5(原因)

我遇到了这个......

  def vol_event_for_date(date)
    VolunteerEvent.find_or_create_by_description_and_date("Roster ##{self.id}", date)
  end

  def vol_event_for_weekday(wday)
    VolunteerDefaultEvent.find_or_create_by_description_and_weekday_id("Roster ##{self.id}", wday)
  end

我从我在 S.O. 上看到的帖子中知道。 find_by 东西是某种旧的过时的 Rails 助手,所以我的问题是......我如何为 Rails 5.0.7 应用程序重构它?

【问题讨论】:

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


    【解决方案1】:

    Rails 4 Active Record Deprecations中所述,更改实际上非常简单

    find_or_create_by_... 可以使用find_or_create_by(...) 重写。

    VolunteerEvent.find_or_create_by_description_and_date("Roster ##{self.id}", date)
    

    只是改变

    VolunteerEvent.find_or_create_by(description: "Roster ##{self.id}", date: date)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多