このチュートリアルに従って理解しましたが、選択ボックスが必要だったため、機能させるためにいくつかの変更を加える必要がありました。
http://railscasts.com/episodes/240-search-sort-paginate-with-ajax?view=asciicast
これが私の新しいコードです:
index.html.erb
<form class="form-inline"
<p>
<select name="state_search" class="span2">
<option value="">Select a State</option>
<option>----------------</option>
<option>LA</option>
<option>MS</option>
<option>TX</option>
</select>
<select name="city_search" class="span2">
<option value="">Select a City</option>
<option>----------------</option>
<option>Mandeville</option>
<option>Covington</option>
</select>
<button type="submit" class="btn">GO</button>
</p>
</form>
<table class="table table-striped table-bordered span8 table-condensed"
id="articles_table" >
<thead class="header">
<tr>
<th>ID</th>
<th>Title</th>
<th>Description</th>
<th>Created_At</th>
</tr>
</thead>
<tbody>
<%= render @articles %>
</tbody>
_article.html.erb
<tr>
<td> <%= article_counter +1 %> </td>
<td> <%= article.Title %> </td>
<td> <%= article.Description %> </td>
<td> <%= article.Created_At %> </td>
</tr>
articles_controller.rb
def index
@articles = Article.state_search(params[:state_search]).city_search(params[:city_search]).page(params[:page]).limit(50).order('Created_At DESC')
respond_to do |format|
format.html # index.html.erb
format.json { render json: @articles }
format.js
end
end
articles.rb
def self.city_search(city_search)
if city_search
where('City LIKE ?', "%#{city_search}%")
else
scoped
end
end
def self.state_search(state_search)
if state_search
where('State LIKE ?', "%#{state_search}%")
else
scoped
end
end
それで、最初に、エピソードのように、その内容が部分的にレンダリングされたテーブルを作成しました。次に、2つの選択ボックスを作成し、それらに名前を付けました。1つはstate_searchで、もう1つはcity_searchでした。次に、articles.rbにアクセスして、それらの名前を定義しました。これは、名前を私のものに置き換えたことを除いて、railscastsのエピソードで行われたのと同じことです。次に、railscastsのエピソードと同じように、articles_controller.rbにアクセスして、2つの検索を追加しました。その後、2つの選択ボックスが完全に機能し、テーブルを並べ替え/フィルタリングしました。
ありがとう