İletileri ve gönderildiklerinde sıralayabileceğiniz bir tablom var. Şu anda kullanıcı, ileti gövdesini sipariş ederek başladığı sayfaya girdiğinde, bir kullanıcı sayfayı başlattığında zaman aşımına uğradığı zamanla başlamasını isterim. Bazı kodları ve ekran görüntüsünü göstereceğim. Bu kodu # 228 numaralı trende de buldum.Sıralama ile otomatik pozisyon?
Onları sıralayan yöntemler aşağıdadır.
def sort_column
Message.column_names.include?(params[:sort]) ? params[:sort] : "body"
end
def sort_direction
%w(asc desc).include?(params[:direction]) ? params[:direction] : "asc"
end
İşte onlar sayfasını açtığınızda ok mesajlarıyla ilgili olduğu görebileceğiniz gibi kullanıcı, gördüğü manzara
<tbody>
<% @message.each do |message| %>
<tr>
<td><%= message.body %></td>
<td><%= time_ago_in_words message.created_at %> ago</td>
<td><%= message.groups.order(:id).pluck(:name).to_sentence %></td>
</tr>
<% end %>
</tbody>
budur. Okun, yönü ile "gönder" konumunda olmasını istiyorum.
Bunu yeterince bilgi olup olmadığından emin değilim ama bana bildirin!
Haklısın ama iki farklı tablolar için bu yöntemleri var. Yani eğer bunu biri için yaparsam, diğer görünümümü yanlış biçimlendirir. baska öneri? – Bitwise
Bu noktada yapabileceğiniz çok sayıda seçenek var. Başlamak için basit bir yer 'sort_column' yönteminizi 'Message.column_names.include? (Params [: sort]) gibi bir sınıf değişkenini kullanmak olacaktır. params [: sort]: @default_sort_column || "created_at" Ve sonra eylemlerde, '@ default_sort_column' değişkenini –
olarak ayarlayın. Yakut için biraz yeniyim, cevabınızı bana daha net hale getirmek için bu yorumu kullanarak düzenleyebilir misiniz? – Bitwise