Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails 3-如果表单字段为空,则改为使用此值_Ruby On Rails_Forms - Fatal编程技术网

Ruby on rails rails 3-如果表单字段为空,则改为使用此值

Ruby on rails rails 3-如果表单字段为空,则改为使用此值,ruby-on-rails,forms,Ruby On Rails,Forms,我的Rails 3应用程序中有一个名为Post的模型 用户可以为这些帖子创建自己的URL。(我称之为干净的url。) 如果用户没有填写此字段,我希望在保存表单时从标题中自己创建值。(基本上使用@post.title.to_s(某些注册表项用于删除空格等…) 如果此字段为空,则使用标题值保存项目的最佳方法是什么 我假设在Posts控制器创建操作中,我可以在保存后“更新帖子的属性”…但我开始认为这可能是错误的 有人对如何实现这一点有想法吗?在保存前使用回调,并在模型中使用私有方法。以下内容直接取自我

我的Rails 3应用程序中有一个名为Post的模型

用户可以为这些帖子创建自己的URL。(我称之为干净的url。)

如果用户没有填写此字段,我希望在保存表单时从标题中自己创建值。(基本上使用@post.title.to_s(某些注册表项用于删除空格等…)

如果此字段为空,则使用标题值保存项目的最佳方法是什么

我假设在Posts控制器创建操作中,我可以在保存后“更新帖子的属性”…但我开始认为这可能是错误的


有人对如何实现这一点有想法吗?

在保存前使用
回调,并在模型中使用私有方法。以下内容直接取自我的博客源代码

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