【问题标题】:In Rails' ActiveRecord, what does a question mark at the end of a method name corresponding to a column do?在 Rails 的 ActiveRecord 中,对应列的方法名末尾的问号有什么作用?
【发布时间】:2017-02-16 03:49:39
【问题描述】:

如果Person 是Rails ActiveRecord 类,而name 是具有字符串类型的表列,那么Person#name? 似乎与name 是否为真不对应。例如,如果name 设置为空字符串,则该字符串为真,但name? 返回假,至少在 Rails 3.2.x 中是这样。添加问号有什么作用?

我尝试搜索这个,但问号不是很适合谷歌搜索,甚至是符号猎犬。

An answer to "Using question mark character in Rails/ActiveRecord column name" 提到 ActiveRecord 会自动将问号添加到字段(列?)名称,但它的作用存在冲突的 cmets。

【问题讨论】:

    标签: ruby-on-rails activerecord ruby-on-rails-3.2


    【解决方案1】:

    如果字段为present?,它将返回true。所以空字符串"" 将返回false。

    【讨论】:

    • 是否有文件证实这一点?
    • 凭经验试了一下,好像是这样。
    【解决方案2】:

    问号方式与blank?类似,但不一样。例如,如果数值不为零,则返回 true,而 0.present? 返回 true。这是line in the Rails source

    【讨论】:

      猜你喜欢
      • 2010-11-23
      • 2011-02-07
      • 2015-11-14
      • 2013-08-21
      • 2011-11-02
      • 1970-01-01
      • 2017-08-22
      • 2012-09-15
      • 2013-04-24
      相关资源
      最近更新 更多