Rails 3.0.5のRailscasts#228とruby 1.9.2p180に従っています。Rails 3:Sortable Columns
クラス名をProductからPlayerに変更した場合を除き、逐語的に逐語的にコードをコピーしました。ライアンが矢印を付けてソート方向を示す最後の部分もスキップします。正しいインデックスページを読み込み、必要なパラメータ(方向と並べ替え)を持つ目的のURLをすべて表示することはできますが、実際にはクリックで何も起こりません。 URLは変更されていますが、ページはリロードされていません。
ApplicationHelper
def sortable(column, title = nil)
title ||= column.titleize
direction = (column == params[:sort] && params[:direction] == "asc") ? "desc" : "asc"
link_to title, :sort => column, :direction => direction
end
PlayersController
def index
@players = Player.order(sort_column + ' ' + sort_direction)
end
private
def find_team
session[:team] ||= Team.new
end
def sort_column
Player.column_names.include?(params[:sort]) ? params[:sort] : "name_e"
end
def sort_direction
%w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
end
あなたの助けを
ありがとう:
は、ここに私のコードです!
編集:要求どおり、HTMLコード。現在の位置:http://localhost:3000/players?direction=asc&sort=abb_posのように、現在の位置のリンクが表示されていることがわかります。ただし、実際のソートはこの列または他の列には発生していません。
<th><a href="/players?direction=asc&sort=name_e">Name</a></th>
<th><a href="/players?direction=asc&sort=team_e">Team</a></th>
<th><a href="/players?direction=desc&sort=abb_pos">Position</a></th>
<th><a href="/players?direction=asc&sort=height">Height</a></th>
<th><a href="/players?direction=asc&sort=weight">Weight</a></th>
あなたといくつかの実行時のHTMLコードを提供することができますそれの中のリンク? – Lichtamberg