Ruby on rails 如何使用嵌套的布尔属性更改侧边栏中的字体颜色?

Ruby on rails 如何使用嵌套的布尔属性更改侧边栏中的字体颜色?,ruby-on-rails,ruby,conditional,Ruby On Rails,Ruby,Conditional,当用户在_表单中勾选:good时,我们如何在侧边栏中将结果的字体颜色呈现为绿色 我们在索引中完成了这项工作: 但是,当我尝试此方法时,侧边栏逻辑通过为每个结果提供额外的量化/结果(我们试图在此处进一步解决此问题:): 更新 量化的.rb class:all _blank,则拒绝_;:allow _destroy=>true#正确 作用域:平均,->{where(categories:'averaged')} 作用域:实例,->{where(categories:'instance')} 作用

当用户在_表单中勾选
:good
时,我们如何在侧边栏中将结果的字体颜色呈现为绿色

我们在索引中完成了这项工作:

但是,当我尝试此方法时,侧边栏逻辑通过为每个结果提供额外的量化/结果(我们试图在此处进一步解决此问题:):


更新

量化的.rb

class:all _blank,则拒绝_;:allow _destroy=>true#正确
作用域:平均,->{where(categories:'averaged')}
作用域:实例,->{where(categories:'instance')}
作用域:private_submit,->{where(private_submit:true)}
作用域:public\u submit,->{where(private\u submit:false)}
验证:类别,:度量,状态:真
充当可标记的角色
类别=['平均','实例']
结束
您只需执行以下操作:

<% averaged.results.each do |result| %>
  <div class="<%= result.good? ? 'green' : 'red' %>">

此外,您不需要像这样明确:

if result.good == true
  #etc.
end
你可以写:

if result.good
  #etc.
end

如果
result.good
返回
false
nil
,它将不会进入If块。如果它返回的不是
false
nil
,它将执行If块。

Yoshiji先生去救援!但由于加里先生的无能,他仍然陷于困境。您的代码创建了与我之前相同的错误“通过为提交的每个结果呈现额外的量化/结果”。我想我没有写错。感谢
==true
的解释。这是因为
结果加入到量化的结果中,它为每个与之相关的
结果
复制了
量化的
记录。使用
量化。包括(:结果)
而不是使用您的代码或将其取出没有任何区别。我就不说了。但问题依然存在:(你能发布作用域
平均值
实例
的源代码吗?另外,你的代码中有一个缺陷:如果没有
当前用户
,3个变量
@averaged\u quantifieds
等将不会被设置,但在你看来,你直接调用它们而不测试它们:你将得到一个“undefined method.each for nil:NilClass”我不明白为什么一个
结果会被渲染两次。你的代码看起来不错,但你的问题是如何使用布尔属性来更改字体颜色。最终为另一个问题的双重渲染创建一个新线程
<% averaged.results.each do |result| %>
  <div class="<%= result.good? ? 'green' : 'red' %>">
# example
# User's boolean attribute 'is_admin' in the DB
# Rails will define an instance method called `is_admin?`:
User.new(is_admin: true).is_admin? # => true
User.new(is_admin: false).is_admin? # => false
User.new(is_admin: nil).is_admin? # => false
# the defined method's name is `<boolean_attribute_name>?`
if result.good == true
  #etc.
end
if result.good
  #etc.
end