2016-09-25 58 views
-1

查看訂購:Ruby on Rails的如何通過選擇框

<div> 
<%= select_tag(:sorttitle, options_for_select(["title","publish_year"])) %> 
<%= select_tag(:sortway, options_for_select(["Order By Asc","Order By Desc"])) %> 
<%= submit_tag"Sort Books", class:"btn btn-info" %> 
</div> 

型號:

if(params[:sortway]=="Order By Desc") 
     @[email protected](params[:sorttitle]: :desc) 
    else 
     @[email protected](params[:sorttitle]: :asc) 
    end 
+0

考慮使用洗劫https://github.com/activerecord-hackery/ ransack –

+0

您在「model:」下編寫的代碼是否位於模型文件中?如果是這種情況,它看起來不正確。模型文件處理數據結構。你的意思是控制器嗎? – Maxence

回答

0

@books = @books.order(params[:sorttitle] => :desc)

+0

感謝您的回覆。我修改爲烏爾的代碼,但遇到了其他問題.PG::SyntaxError:錯誤:零長度分隔標識符在或接近「」「」 LINE 1:... FROM「books」WHERE(title like'%%')ORDER BY「books」。「」ASC ^ :SELECT「books」。* FROM「books」WHERE(標題爲'%%')ORDER BY「books」。「」ASC –

+0

看起來您的數據有些不好數據庫 - 一本沒有標題的書。 –

+0

我檢查了我所有的數據,每個人都有一個標題。 :( –