1

下はブロックです。Groupとは、関係でWorkout接続されたモデルであり、その間の結合モデルです。has_many :throughGroupsWorkout

<% @group.workouts.each do |workout| %>
    <%= link_to workout.name, workout %><br />
<% end %>

workout.nameworkout_order列で並べたいWorkoutsGroup

通常はそのまま使用しますModel.order(column_name, DESC)が、私が知る限り、ここでは機能しません。

4

2 に答える 2

1

アイテムを表示する前にページ内のアイテムを並べ替えたい場合は、次のように反復する前にワークアウト コレクションを並べ替えることができます。

<% @group.workouts.sort_by{|workout| workout.workout_order}.each do |workout| %>
  <%= link_to workout.name, workout %><br />
<% end %>

編集:ああ、私はあなたの質問を誤解したと思います。答えを絞り込むために少し時間をください。

次のように関連付けで順序を定義することにより、結合テーブルの列でワークアウトを並べ替えることができます。

グループ モデル:

has_many :workouts, :through => :group_workouts, :order => "workoutorder DESC"
于 2013-05-23T15:06:16.513 に答える
1

Groupモデルに次の順序を追加できます。

has_many : workouts, :through => :group_workouts, :order => 'workouts.name'
于 2013-05-23T15:09:07.387 に答える