0

我对 Rails 世界还很陌生,我已经被这个问题困住了一段时间。我正在为我的框架使用 Twitter Bootstrap,并且我正在尝试构建一个基本网站,其中包含一个由选择框排序/过滤的表格。我已经创建了表格,但我无法获得一个选择框来过滤它。我尝试了几件事,包括不能正常工作的 DataTables gem。我不知道我需要使用什么才能完成这项工作。

如果您可以引导我浏览一个基本网站,其中包含一个由选择框排序/过滤的表格,那就太棒了。

4

1 回答 1

1

我按照本教程解决了这个问题,但是我必须进行一些更改才能使其对我有用,因为我想要选择框。 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>

文章控制器.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

文章.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

因此,首先,我创建了表格,其内容由部分呈现,就像在剧集中一样。然后我创建了两个选择框并给它们命名。一个是 state_search,另一个是 city_search。然后,我进入了articles.rb 并定义了这些名称。这与 railscasts 情节中的相同,只是我用我的名字替换了名字。接下来,我进入了articles_controller.rb 并将两个搜索添加到其中,就像在railscasts 集中一样。之后,两个选择框完美地工作并排序/过滤了表格。

谢谢

于 2012-09-30T18:36:12.337 回答