我试图使,如果有人发表没有标题的帖子,则该帖子将获得默认标题。
到目前为止,我已经尝试过了
控制器
def create
@post = Post.create(post_params)
if @post.title.nil?
@post.update(:title => 'Unnamed')
else
# DO NOTHING
end
end
控制器
def create
if params[:title].nil?
params[:title] == 'Unnamed'
@post = Post.create(post_params)
else
@post = Post.create(post_params)
end
end
但这行不通。任何想法我做错了什么?提前致谢。
我认为这是模型负责使自己保持有效状态的责任。此外,如果多个控制器更改更新同一模型,则这是根据DRY原理的最佳解决方案。因此,我将在Post
模型中执行以下操作:
before_validation :set_default_title
private
def set_default_title
self.title = title.presence || 'Unnamed'
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句