相关疑难解决方法(0)

如何覆盖rails模型的"new"方法

在我的rails应用程序中,我有一个带有start_date和end_date的模型.如果用户选择2010年1月1日作为start_date和2010年1月5日作为end_date,我希望创建5个模型实例(每天选择一个).所以它看起来像

Jan 1, 2010
Jan 2, 2010
Jan 3, 2010
Jan 4, 2010
Jan 5, 2010
Run Code Online (Sandbox Code Playgroud)

我知道解决这个问题的一种方法是在控制器中进行循环.就像是...

# ...inside controller
start_date.upto(end_date) { my_model.new(params[:my_model]) }
Run Code Online (Sandbox Code Playgroud)

但是,我想保持我的控制器瘦,加上我想保持模型逻辑不在其中.我猜我需要覆盖模型中的"新"方法.最好的方法是什么?

ruby-on-rails

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

如果更新记录,如何跳过"after_initialize"方法?

我有一个after_initialize方法,如果我没有更新记录,我只想调用它.例如,类似以下内容:

after_initialize :set_some_name, :unless => :updating?
Run Code Online (Sandbox Code Playgroud)

例如,Task.find(123).title应该调用该after_initialize方法.Task.find(123).save!(:title => "something")应该不是调用after_initialize方法.

当然是"更新?" Rails中不存在方法.是否有相同的方法或方法?

ruby activerecord ruby-on-rails

0
推荐指数
1
解决办法
1737
查看次数

标签 统计

ruby-on-rails ×2

activerecord ×1

ruby ×1