ruby-on-rails - 如果数据为空、nil 或空白,则返回字符串?

标签 ruby-on-rails

我有一个 text_area,如果特定对象为空、nil 或空白,我想为其设置 placeholder 属性。

我目前正在这样做:

<%= f.text_area :comment, placeholder: @response.followup ||= "Would you like to add a note?" %>

如果@response.followupnil,这似乎有效,但如果它只是空......它不使用“你愿意吗?”想要添加注释吗?” 我正在设置的默认文本。

最佳答案

检查您是否有presence在您的 Rails 版本中可用。如果是,您可以执行以下操作

<%= f.text_area :comment, placeholder: @response.followup.presence || "Would you like to add a note?" %>

如果不可用,您可以选择以下选项之一

  1. 使用装饰器/演示器(我认为这太过分了)
  2. 设置 Controller 中占位符的值

    @response.followup = 'Would you like to add a note?' if response.blank?

  3. 在 View 中使用三元运算符

    <%= f.text_area :comment, placeholder: (@response.followup.blank? ? "Would you like to add a note?" : @response.followup) %>

关于ruby-on-rails - 如果数据为空、nil 或空白,则返回字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634527/

相关文章:

ruby-on-rails - 使用 Prawn 和 Prawnto 生成 PDF

ruby-on-rails - 无法在 Ubuntu 11.04 上使用 ctrl-c 停止 WEBrick 1.3.1

ruby-on-rails - Rails Controller 私有(private)方法的功能测试

ruby-on-rails - 在 Ubuntu 12.04 上安装 Ruby on Rails

javascript - 用于测试函数调用失败的 Jasmine 测试

mysql - 显示关联模型的内容

ruby-on-rails - Ruby on Rails ActiveRecord : optimizing increment by one

ruby-on-rails - ActiveRecord::AssociationTypeMismatch in Controller#create on dropdown select for a Rails self join

ruby-on-rails - travis ci 和 selenium-webdriver 无法在 60 秒内获得稳定的 firefox 连接 (127.0.0.1 :7055)

ruby-on-rails - 使用 friendly_id 一段时间后启用历史记录