Ruby on rails 检查表列是否有任何值
我有一个名为Ruby on rails 检查表列是否有任何值,ruby-on-rails,Ruby On Rails,我有一个名为shirt的模型,它有一个名为fabric的字段, 在控制器中我有 @fabrics = Shirt.uniq.pluck(:fabric) 在视图上,我希望显示一个…,但前提是shirts表的fabric列至少包含一个值。我试过: <% if @fabrics != nil %> <div> ... </div> <% end %> ... 但即使整列没有值,仍然可见。我也试过了 没有成功。 在呈现div之前,
shirt
的模型,它有一个名为fabric
的字段,
在控制器中我有
@fabrics = Shirt.uniq.pluck(:fabric)
在视图上,我希望显示一个…
,但前提是shirts
表的fabric
列至少包含一个值。我试过:
<% if @fabrics != nil %>
<div>
...
</div>
<% end %>
...
但即使整列没有值,
仍然可见。我也试过了
没有成功。
在呈现div之前,如何检查列是否为空?试试看
<% unless @fabrics.blank? %>
试试看
在控制器中尝试此操作
@fabrics = Shirt.uniq.pluck(:fabric).reject { |f| f.nil? || f.empty? }
在控制器中试试这个
@fabrics = Shirt.uniq.pluck(:fabric).reject { |f| f.nil? || f.empty? }
Shirt.uniq.purch(:fabric)
返回一个关系
。因此,它永远不会是nil
此关系定义sql查询的部分。这表示:给我数据库中织物的(所有|一个)唯一值。要实际运行该查询,您需要对该关系调用触发数据库调用的方法:all
,first
,each
,any?
,blank?
由于缺乏背景,我不知道你如何使用你的衬衫型号。但我猜这个问题永远不会给你预期的答案。因为Shirt.uniq.purch(:fabric)
只要该表中至少有一行,就会始终返回一些内容。假设表中只有一行,它的fabric
是nil
,而Shirt.uniq.pulk(:fabric)。空白?
将决定Shirt.uniq.pulk(:fabric)
到[nil]
。和[nil]。空白?==错误
如果您处理一件特定的衬衫,请使用@shirt.fabric.present?
如果您想知道数据库中是否至少有一件衬衫没有织物衬衫。其中(织物:无)。有吗?
我建议阅读:
Shirt.uniq.puck(:fabric)
返回一个关系
。因此,它永远不会是nil
此关系定义sql查询的部分。这表示:给我数据库中织物的(所有|一个)唯一值。要实际运行该查询,您需要对该关系调用触发数据库调用的方法:all
,first
,each
,any?
,blank?
由于缺乏背景,我不知道你如何使用你的衬衫型号。但我猜这个问题永远不会给你预期的答案。因为Shirt.uniq.purch(:fabric)
只要该表中至少有一行,就会始终返回一些内容。假设表中只有一行,它的fabric
是nil
,而Shirt.uniq.pulk(:fabric)。空白?
将决定Shirt.uniq.pulk(:fabric)
到[nil]
。和[nil]。空白?==错误
如果您处理一件特定的衬衫,请使用@shirt.fabric.present?
如果您想知道数据库中是否至少有一件衬衫没有织物衬衫。其中(织物:无)。有吗?
我建议阅读:
您从控制台中得到什么:@fabrics=Shirt.uniq.purcle(:fabric)
?和@fabrics=Shirt.uniq.pulk(:fabric).class
?uniq对class衬衫有效吗?在控制台上尝试并显示输出。@Miotsu我在同一个视图上使用@fabrics
来显示所有的结构,它正在工作。这并不能回答我的问题:)如果我正确地阅读了你的问题,
就足够了。你从控制台得到什么:@fabrics=Shirt.uniq.pulk(:fabric)
?和@fabrics=Shirt.uniq.pulk(:fabric).class
?uniq对class衬衫有效吗?在控制台上尝试并显示输出。@Miotsu我在同一个视图上使用@fabrics
来显示所有结构,并且它正在工作。这并不能回答我的问题:)如果我正确阅读了您的问题,
就足够了。谢谢您的帮助,请您解释一下.reject
做了什么。返回一个新数组,其中包含块不为真的self中的项目(请参阅此处的更多内容)。感谢这项工作,请您解释一下.reject
做了什么。返回一个新数组,其中包含块不为真的self中的项目(请参阅此处的更多信息)我在控制器上使用了@Thaha-answer,在视图上使用了这个答案,它成功了。谢谢Pierre。我在控制器上使用了@Thaha answer,在视图上使用了这个答案,效果很好。谢谢你,皮埃尔。