相关疑难解决方法(0)

Rails after_save回调创建基于column_changed的关联模型?

我有一个带有状态列的ActiveRecord模型.当模型以状态更改保存时,我需要写入历史文件,更改状态以及由谁负责更改.我认为after_save回调会很好用,但我不能使用status_changed?用于确定执行历史写入的动态方法.如果模型已保存但状态未更改,我不想写入历史记录.我现在处理它的唯一想法是使用实​​例变量标志来确定after_save是否应该执行.有任何想法吗?

activerecord ruby-on-rails callback

6
推荐指数
3
解决办法
7647
查看次数

在Rails模型中设置和获取虚拟属性

我正在寻找一种方法来解决以下问题:

Event模型datetime中的两个属性:

start_at: datetime
end_at:   datetime
Run Code Online (Sandbox Code Playgroud)

我想使用3个字段以表格形式访问它们:

event_date
start_time
end_time
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是如何将实际虚拟属性保持在"同步",以便可以通过表单和/或直接通过start_at&更新模型end_at.

class Event < ActiveRecord::Base
  attr_accessible :end_at, :start_at, :start_time, :end_time, :event_date
    attr_accessor :start_time, :end_time, :event_date

  after_initialize  :get_datetimes # convert db format into accessors
  before_validation :set_datetimes # convert accessors into db format

  def get_datetimes
    if start_at && end_at
      self.event_date ||= start_at.to_date.to_s(:db)   # yyyy-mm-dd 
      self.start_time ||= "#{'%02d' % start_at.hour}:#{'%02d' % start_at.min}" 
      self.end_time   ||= "#{'%02d' % end_at.hour}:#{'%02d' % end_at.min}" 
    end
  end

  def set_datetimes
    self.start_at …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails accessor virtual-attribute ruby-on-rails-3

6
推荐指数
2
解决办法
1万
查看次数

我应该何时在rails中使用数组列和关联

自从Rails 4和Postgres 9开始array column实施.我使用阵列列来存储类似也尝试tagscategories,我不经常改变的,它被用作参考/刻面进行搜索.我之前提出了另一个关于使用数组列进行查询的问题,其中一个答案提到永远不要使用数组来存储数据.我很困惑,如果建议永远不要使用它,为什么会创建数组列.所以我的问题是

什么时候在Rails中使用数组列和模型关联被认为更好?

arrays postgresql ruby-on-rails ruby-on-rails-4

4
推荐指数
1
解决办法
219
查看次数