将对象传递给before_filter以在创建之前执行其他逻辑

时间:2011-04-02 18:35:07

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

我需要在对象保存到数据库之前对其执行一些额外的逻辑。我假设使用before_filter是完成此操作的正确方法,但我不确定如何将要保存的对象传递给我的before_filter方法。

2 个答案:

答案 0 :(得分:1)

这是我在这里发表的第一篇文章,所以对我来说很容易!

至少在Rails 3中有一个before_save方法,可以在模型中调用。 在帖子模型中

before_save :add_url_and_ID


def add_url_and_ID
#extra logic
self[:url] = whatever.com
self[:member_id] = member.id
end

我可能会离开,但它是我的第一次去!

答案 1 :(得分:0)

这对我来说听起来像模型代码。要充分利用Rails(或任何MVC框架),请遵循'Fat Models,Skinny Controllers'的经验法则。它可能会走得太远,但我认为在这种情况下它非常清楚。如果您提到的辅助函数存在错误,那么保存操作是否应该失败并显示相应的错误消息?

在这个主题上有很多关于SO的好帖子。 Here's one

如果这不足以让我使用,我建议发布一些代码。