2012-09-27 58 views
0

我對Rails世界相當陌生,而且我一直在這個問題上停留了一段時間。我正在使用Twitter Bootstrap作爲我的框架,並且我正在嘗試構建一個基本網站,並通過選擇框排序/過濾表格。我創建了表格,但我無法獲得選擇框來過濾它。我已經嘗試了幾件事情,包括DataTables gem,它無法正常工作。我不知道我需要用什麼來完成這項工作。選擇框在Rails中排序表

如果你可以讓我通過一個基本網站,並通過選擇框對錶格進行排序/篩選,那就太棒了。

+1

您可以發佈您的.erb模板到目前爲止? – cdesrosiers

+0

您可能不得不使用這個過程。告訴我們你的相關代碼。在選擇菜單更改時,更新列表並使用ajax重新呈現表格。類似的案例http://stackoverflow.com/questions/11327282/rails-ajax-getting-a-dropdown-selection-to-populate-a-table –

+0

那麼,你想要我發佈什麼文件? – jackadanos

回答

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> 

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 

所以要開始,我創建了一個局部渲染,就像在情節內容的表格。然後我創建了兩個選擇框並給了它們名字。一個是state_search和另一個city_search。然後,我進入articles.rb並定義了這些名稱。這是在railscasts插曲中完成的同樣的事情,除了我用我的名字替換了這些名字。接下來,我進入articles_controller.rb並將兩個搜索添加到它,就像在railscasts插曲中一樣。 這樣做後,兩個選擇框完美工作,並對錶格進行排序/過濾。

謝謝