gpt4 book ai didi

ruby-on-rails - Rails 如何在实例变量之后排序

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:03 24 4
gpt4 key购买 nike

在我的 konkurrancerstable 中我有:

rating_score => The current score (integer)
ratings => The number of ratings which led to the score (integer)

在我看来,我想在评分后对 konkurrancers 进行排序。所以我必须做这个数学:rating_score/ratings评分可能不为空,因为我不能除以零。

<% @konkurrencer.find(:all, :order => '@rating ASC', :limit => 5).each do |vind| %>
<%= link_to(image_tag(vind.banner2, :style => 'border:none; width:125px; height:125px;'), vind.tracking, :target => '_blank') %>
<% end %>

我的 Controller :

class PublicController < ApplicationController
helper_method :sort_column, :sort_direction
def index
@konkurrencer = Konkurrancer
end
end

我的看法:

15: <%= @konkurrencer.find(:all, :select => "rating_score/ratings AS rating", :order => 'rating ASC', :limit => 5).each do |da| %>
16: <%= da.banner2 %>
17: <% end %>

我得到以下错误:

ActiveModel::MissingAttributeError in Public#index Showing C:/Rails/konkurranceportalen/app/views/public/_konkurrencer.html.erb where line #16 raised: missing attribute: banner2

如何创建实例变量 rating 来订购 konkurrancers?

最佳答案

如果不出意外,您可以从数据库中检索记录列表后按两个标准对其进行排序。

在 Controller 的 index 方法中,我会这样做:

@konkurrancers = Konkurrancer.find(:all, :order => '@rating ASC')
@konkurrancers.sort! {|a, b|
rel = a.rating_score <=> b.rating_score
# if "rating_scores" are equivalent, only then consider "ratings"
rel == 0 ? a.ratings <=> b.ratings : rel
}

这将为您提供所有 Konkurrencer 对象的列表,并按两个标准排序。

在你看来,我会这样做:

<% @konkurrancers[0,5].each do |vind| %>
<%= link_to(image_tag(vind.banner2, :style => 'border:none; width:125px; height:125px;'), vind.tracking, :target => '_blank') %>
<% end %

这应该只为您在 Controller 中创建的列表中的前 5 个项目创建 html。 (这是你想要的吗?)

关于ruby-on-rails - Rails 如何在实例变量之后排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com