我的Rails 3应用程序中有一个名为Post的模型。
用户可以为这些帖子创建自己的网址。 (我称之为clean_url。)
如果用户没有填写此字段,我想在保存表单时自己从标题创建值。 (基本上使用@ post.title.to_s(一些注册表来删除空格等...)
如果项目保留为空白,那么在此字段中使用标题值保存项目的最佳方法是什么?
我假设在Posts控制器中创建动作我可以在保存时“更新_attributes”帖子但是我开始认为这可能是错的?
任何人都有关于如何实现这一目标的想法?
答案 0 :(得分:2)
在模型中使用before_save
回调和私有方法。以下内容直接来自我的博客来源。
before_save :create_clean_url
private
def create_clean_url
if self.clean_url.blank?
# Remove non-alpha characters. Replace spaces with hyphens.
self.clean_url = self.title.downcase.gsub(/[^(a-z0-9)^\s]/, '').gsub(/\s/, '-')
end
end