Userオブジェクトをソートしてクラス変数に入れる(2016-02-15修正)
user.rb
・・・
VALID_SORT_COLUMNS = %w(name nickname)
def index
sort = params[:sort] if VALID_SORT_COLUMNS.include?(params[:sort])
@users = User.order(sort)
end
・・・
ソートのパラメータとして,nameを渡す
index.html.erb
...
<table>
<tr>
<th>
<%= link_to "Name", sort: "name" %>
</th>
</tr>
<% users.each do |user| %>
<tr>
<td>
<%= user.name %>
</td>
</tr>
</table>
...
修正
2016-02-15
SQLインジェクションを考慮したコードに修正 (@jnchito さんよりコメントいただきました)
修正後のuser.rb
user.rb
・・・
VALID_SORT_COLUMNS = %w(name nickname)
def index
sort = params[:sort] if VALID_SORT_COLUMNS.include?(params[:sort])
@users = User.order(sort)
end
・・・
修正前のuser.rb
user_old.rb
・・・
def index
@users = User.order(params[:sort])
end
・・・