ruby-on-rails - 如果参数为空,如何从数据库 Rails 设置默认值

标签 ruby-on-rails ruby ruby-on-rails-5

海,我想知道如果我的paramsnil,如何从数据库设置默认值

我正在尝试更新我使用此代码的数据库中的记录

  if @sheet = Sheet.where(id: sheet_id).first_or_initialize
    @sheet.user_id = user_id
    @sheet.name = sheet_name ## I want to set a default value for this
    @sheet.save
  end

如果我的 params[sheet_name]nil,我想设置数据库中工作表名称的默认值。

更新 这就是我想要实现的目标

if sheet_name != nil
  @sheet.name = sheet_name
end

有没有什么简单的写法

最佳答案

在您的示例中,这应该有效:

if @sheet = Sheet.where(id: sheet_id).first_or_initialize
  @sheet.user_id = user_id
  @sheet.name = sheet_name.presence || 'Sheet 1'
  @sheet.save
end

根据您的用例,您可能需要考虑 setting the default in the database .

关于ruby-on-rails - 如果参数为空,如何从数据库 Rails 设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57543562/

相关文章:

ruby-on-rails - Ruby BigDecimal 健全性检查( float newb)

ruby-on-rails - 尝试从 ruby​​ 1.8.7 升级到 1.9.2,同时仍然使用 rails 2.3.8

ruby-on-rails - 如何使 ID 成为 Rails 中的随机 8 位字母数字?

ruby - Jekyll 缺少帖子、页面和默认值

ruby-on-rails - Rails api-only 忽略 rabl 文件

ruby-on-rails - rails : Google login with omniauth

css - 带 Bootstrap 的 Z 索引 : Image Still In Front of Text

ruby-on-rails - Rails 查询 : find first record by id and select only specified attributes for that record

ruby-on-rails - Json.jbuilder合并2个json数据并发送给一个key

javascript - Time.now 在部分 rails 上没有改变