検索結果で表示されたリストを、並べ替えができるようにしたいです。
現在はリンク先をクリックしても、実装できていません。
どこのコードがおかしいのかご教授いただければ幸いですm(_ _)m
=======================
views
=======================
<%= link_to "安い順", :action => 'low' %>
<%= link_to "高い順", :action => 'high' %>
<% @products.each do |product| %>
商品名<%= product.code %>
金額<%= product.price %>
<% end %>
=======================
controller.rb
=======================
def check
@product = Product.all
render :action => 'check'
end
def low
@products = Product.find(:all, :order => "price ASC")
render :action => 'check'
end
def high
@products = Product.find(:all, :order => "price DESC")
render :action => 'check'
end
ご教授よろしくお願い致します。
No.3ベストアンサー
- 回答日時:
すみません。
#2の回答も的外れでした。viewの@productsに正しい値が設定されていないのは、
def check
@product = Product.all
render :action => 'check'
end
の
@product = Product.allが原因です。
これを
@products = Product.all
として下さい。(@productを@productsにする)
尚、view側も見やすくするために
===================================
<%= link_to "安い順", :action => 'low' %>
<%= link_to "高い順", :action => 'high' %>
</br> ・・・ここに改行をいれる
<% @products.each do |product| %>
商品名<%= product.code %>
金額<%= product.price %></br> ・・・ここに改行をいれる
<% end %>
===================================
とすると良いかと思います。
ご教授ありがとうございます。
def checkを修正して実装できました。
>@product = Product.allが原因です。
お手間をおかけしまして、すみません。
ありがとうございました。
@products = Product.order("price")
@products = Product.order("price DESC")
No.2
- 回答日時:
すみません。
#1の回答は的外れでした。@products = Product.find(:all, :order => "price ASC")
と
@products = Product.order('price ASC')
は同じ結果が得られますので、ソートの指定が誤っているわけではないようです。
(今後は、後者を推奨します)
こちらで、viewをその通りに作成し、実行したところ
NoMethodErrorが発生しましたので、それが原因かと思います。
view側を以下のように修正してください。
==================================
<%= link_to "安い順", :action => 'low' %>
<%= link_to "高い順", :action => 'high' %>
<% if @products %> ・・・・・・・この行を追加
<% @products.each do |product| %>
商品名<%= product.code %>
金額<%= product.price %></br> ・・・本質的な部分ではないが見やすくするために</br>を追加
<% end %>
<% end %> ・・・・・・この行を追加
===============================
@products になにも設定されていない場合は、表示しないように変えました。
No.1
- 回答日時:
以下のようにしてください。
@products = Product.find(:all, :order => "price ASC")
を
@products = Product.order('price ASC')
@products = Product.find(:all, :order => "price DESC")
を
@products = Product.order('price DESC')
rails3.x では、このような書き方に変わっています。
Product.find(:all, :order => "price DESC")の書き方は、
rails2.xの記述方法なので、現在は非推奨になっています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- デスクトップパソコン Minisforum 中国製のミニパソコン メモリが16 GB CPU 性能も高く お得? 3 2023/02/04 17:16
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1、Rstudioで回帰直線を求める...
-
ビーリアルのユーザー名を変え...
-
教えてください
-
再起動後必ず2つのエラーが出...
-
英数字を含む文字列(0-9,A-Z)...
-
C言語の入力した文字を反転させ...
-
プログラミングの課題で1万円か...
-
Ruby on railsをrails sで立ち...
-
実行時エラー450:引数の数が一...
-
(再質問)エクセルのマクロボ...
-
エクセルvbaでチェックボックス...
-
100万件越えCSVから条件を満た...
-
これらは書誌情報だと思うので...
-
情報の表現。()内がどうしても...
-
pythonのerrorコード
-
三項でたとえば交換って
-
WinSCPで画像のように puttyを...
-
パソコンのスクリーンセーバー...
-
こういう問題分をよんだとき
-
バーチャルボックスが使えなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10円未満を切り捨てる方法は?
-
rails3初心者 金額から絞り込み...
-
rails3初心者 検索結果を並べ...
-
osCommerce[1054エラー]
-
rails3初心者 検索対象に別テー...
-
Linux Sound関係のコンパイルエ...
-
メビウスでDVDマルチ搭載の中で...
-
システムコンポサイズの短波ラ...
-
get() と find() の違いについて
-
「arg」は何の略?
-
エクセルVBA オートフィルタで...
-
教えてください。vb5.0
-
テンプレートの特殊化でコンパ...
-
What class are you in? には何...
-
変数の隠蔽とは?
-
エラー「メソッドまたはデータ...
-
メソッド定義の構文のdefって
-
Rubyの超初心者です。「戻り値r...
-
関数の引数に複数のユーザ定義...
-
VBAで型が一致しないエラー(バ...
おすすめ情報