私の場合、paramsとのリンクがあり、paramsで選択します
リンクで使用したため@posts
、selectでフィルタリングしてから params でフィルタリングすると、すべて問題ありません(:per_page)
。(:pub)
params.merge
しかし、最初のリンクを使用してから選択したい場合、選択のどこに書き込むべきかわからないため、機能しませんparams.merge
。
私のコントローラーからのコード:
def index
@posts = Post
@posts = @posts.published unless params[:pub]
@posts = @posts.where(:published => params[:pub]) if params[:pub]
@posts = @posts.page(params[:page]).per(params[:per_page] || 5)
end
ビューからのコード
<%= select_tag :per_page, options_for_select(%w(1 2 3), params[:per_page].to_i), :onchange => "if(this.value){window.location='?per_page='+this.value;}" %>
<%= link_to "unpubl", params.merge(:pub => :f) %>
<%= link_to "publ", params.merge(:pub => :t) %>