Ruby on rails Rails-如果填充了字段,如何渲染图像?
在我的应用程序中,用户可以说他们已经完成了一项家庭作业 “completed_on”字段中填充了家庭作业的完成日期。如果未完成,则该字段为空 如果作业完成了,我想打勾,如果作业没有完成,我想打x “已完成”列位于名为“家庭作业学生”的表格中Ruby on rails Rails-如果填充了字段,如何渲染图像?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,在我的应用程序中,用户可以说他们已经完成了一项家庭作业 “completed_on”字段中填充了家庭作业的完成日期。如果未完成,则该字段为空 如果作业完成了,我想打勾,如果作业没有完成,我想打x “已完成”列位于名为“家庭作业学生”的表格中 class Homework < ActiveRecord::Base has_many :homework_students, :class_name => 'HomeworkStudent' class HomeworkStude
class Homework < ActiveRecord::Base
has_many :homework_students, :class_name => 'HomeworkStudent'
class HomeworkStudent < ActiveRecord::Base
belongs_to :homework, :class_name => 'Homework'
视图:
看法
感谢您的指导
更新
这项工作:
def completed?
homework_students.where("completed_on is not null").length == 0
end
<% @homeworks.each do |homework| %>
...
<td height="1" class="text-center"><% if homework.completed? %>
<%= image_tag "fi-check.svg", class: "homework_student_complete" %>
<% else %>
<%= image_tag "fi-x.svg", class: "homework_student_complete" %>
<% end %></td>
...
<% end %>
def是否已完成?
学生家庭作业。其中(“已完成”不为空)。长度==0
结束
...
...
您的方法get\u completion没有返回任何内容。试试这个
@homework_student = homework_students.where("completed_on is not null")
return @homework_student
也许它有用。另外,请确保已完成的_on不为null,并能正常工作 您的方法get\u completion没有返回任何内容。试试这个
@homework_student = homework_students.where("completed_on is not null")
return @homework_student
也许它有用。另外,请确保已完成的_on不为null,并能正常工作 查询的结果可以是ActiveRecord::Relation或空数组,在这两种情况下,if语句的计算结果都为true。尝试将查询更改为:
def completion
homework_students.where("completed_on is null").length == 0
end
查询的结果可以是ActiveRecord::Relation或空数组,在这两种情况下,if语句的计算结果都为true。尝试将查询更改为:
def completion
homework_students.where("completed_on is null").length == 0
end
getCompletion
方法的返回类型是ActiveRecord::Relation
。然后,通过将其放在一个条件中,您将询问此关系是否存在。即使关系包含空数据集(例如,[]
),这也将始终是真的
,因为空数组是真实的
您应该期望getCompletion
返回HomeworkStudent
记录的集合。如果你想在所有学生都完成作业的情况下显示一个勾号或“x”,那么你需要一个聚合方法来检查所有记录(如果有,或没有,等等)。尝试执行以下操作:
# app/models/homework.rb
def completed?
homework_students.where("completed_on is null").none?
end
# in the view
<% if homework.completed? %>
<%= image_tag "fi-check.svg", class: "homework_student_complete" %>
<% else %>
<%= image_tag "fi-x.svg", class: "homework_student_complete" %>
<% end %>
#app/models/homography.rb
def完成了吗?
学生的家庭作业。在哪里(“已完成的”为空)。无?
结束
#在视图中
有关ActiveRecord::Relation方法的详细信息,请访问您的
getCompletion
方法的返回类型是ActiveRecord::Relation
。然后,通过将其放在一个条件中,您将询问此关系是否存在。即使关系包含空数据集(例如,[]
),这也将始终是真的
,因为空数组是真实的
您应该期望getCompletion
返回HomeworkStudent
记录的集合。如果你想在所有学生都完成作业的情况下显示一个勾号或“x”,那么你需要一个聚合方法来检查所有记录(如果有,或没有,等等)。尝试执行以下操作:
# app/models/homework.rb
def completed?
homework_students.where("completed_on is null").none?
end
# in the view
<% if homework.completed? %>
<%= image_tag "fi-check.svg", class: "homework_student_complete" %>
<% else %>
<%= image_tag "fi-x.svg", class: "homework_student_complete" %>
<% end %>
#app/models/homography.rb
def完成了吗?
学生的家庭作业。在哪里(“已完成的”为空)。无?
结束
#在视图中
有关ActiveRecord::Relationship方法的详细信息,请参见
image\u tag
部分,该部分仅在if
条件评估为true时才应呈现。可能作为诊断放入
。只有当if
条件评估为true时,才应呈现图像标签
部分。在Ruby中,方法中的最后一条语句会自动返回。您基本上使用了@Co2的代码,并使其执行相同的操作,但使用了更详细的代码。即使你的想法是正确的,也没有理由将值存储在这样的实例方法中。对不起,伙计。好吧,上面的答案应该已经有点帮助了。。抱歉,没时间了。在Ruby中,方法中的最后一条语句会自动返回。您基本上使用了@Co2的代码,并使其执行相同的操作,但使用了更详细的代码。即使你的想法是正确的,也没有理由将值存储在这样的实例方法中。对不起,伙计。好吧,上面的答案应该已经有点帮助了。。没时间了,对不起。@Co2使用本提出的none?
方法似乎更优雅;-)@使用Ben提出的none?
方法似乎更优雅;-)
# app/models/homework.rb
def completed?
homework_students.where("completed_on is null").none?
end
# in the view
<% if homework.completed? %>
<%= image_tag "fi-check.svg", class: "homework_student_complete" %>
<% else %>
<%= image_tag "fi-x.svg", class: "homework_student_complete" %>
<% end %>