2016-12-05 51 views
1

我一直在嘗試示例過去幾天沒有運氣。 我有一張名爲Article的表格,裏面有子彈,粉末和calibertitle等列。我設置了一個表單,可以輸入特定的細節,如子彈品牌,粉品牌,口徑名稱等。如何在Ruby on Rails中按標題排序和顯示?

我正在使用SQLite。

如何在標題中搜索特定單詞並只顯示標題和相應信息(如果標題包含該單詞)?

我可以列出所有的數據,但我不知道如何對它進行排序。我還想按照字母順序來列出數據。

此外,如果我創建了另一個控制器,是否可以列出/顯示新控制器下的相同列?

/views/articles/index.html.erb

<h1>Load Data</h1> 
<table> 
    <tr> 
    <th>Bullet</th> 
    <th>Powder</th> 
    <th>Caliber</th> 
    </tr> 

    <% @articles.each do |article| %> 
    <tr> 
    <td><%= article.bullet %></td> 
    <td><%= article.powder %></td> 
    <td><%= article.calibertitle %></td> 
    <td><%= link_to '[View]', article_path(article) %></td> 
    <td><%= link_to '[Edit]', edit_article_path(article) %></td> 
    <td><%= link_to '[Delete]', article_path(article), 
      method: :delete, 
      data: { confirm: 'Are you sure?' } %></td> 
    </tr> 
    <% end %> 
<%= link_to 'Back', controller: 'welcome' %> 
<p> 
</table> 

articles_controller.rb

class ArticlesController < ApplicationController 

    def index 
    @articles = Article.all 
    end 

    def show 
    @article = Article.find(params[:id]) 
    end 

    def new 
    @article = Article.new 
    end 

    def edit 
    @article = Article.find(params[:id]) 
    end 

/models/article.rb

class Article < ApplicationRecord 

    validates :calibertitle, presence: true, 
          length: { minimum: 3 } 

end 
+0

「過去幾天我一直在嘗試示例,但沒有運氣。」你有什麼嘗試? ['#where'](http://guides.rubyonrails.org/active_record_querying.html#conditions)和['#order'](http://guides.rubyonrails.org/active_record_querying.html#ordering)很好記錄 – engineersmnky

+0

我不確定你的問題的第一部分,但通過字母存儲項目,你可以簡單地將'@articles = Article.order(:title)'傳遞給你的索引動作 –

回答

1

在你的控制器假設你有一列名爲calibertitle

def index 
    @articles = Article.all.order(:calibertitle) 
end 

要獲取本刊特定值的字段:Article.where(calibertitle: '308')

你可以試試這個在軌控制檯只是爲了驗證。如果您需要排序在...反向,您也可以執行.reverse_order(:field)

+0

現在已編輯 – whodini9

+0

我有一列命名爲calibertitle。 – Prox

+0

這是行不通的嗎?你也並不真的需要。所有你可以做的Article.order(:calibertitle) – whodini9