0

テーブルを含むインデックス ページがあります。テーブルを並べ替えるさまざまな方法を表示するドロップダウン ボックスが欲しいです。このような:

 '<%= f.select :order_by [service_date, Car_name, etc.]'

ドロップボックスの値を読み取って新しい注文を送信できるようにするには、コントローラーに何を入力すればよいかわかりません

#index_controller
def index
  @cars = Car.find(:all, :order => 'value of drop down box in here')
  @cars_available = Car.where(:available => true, :booked => false)

  respond_to do |format|
    format.html # index.html.erb
    format.json { render :json => @cars}
  end
end

何か案は?

4

1 に答える 1

2

他のフォーム パラメータと同じように機能します。

# GET
def index
  @cars = Car.find(:all, :order => params[:car][:order_by])
  @cars_available = Car.where(:available => true, :booked => false)

  respond_to do |format|
    format.html # index.html.erb
    format.json { render :json => @cars}
  end
end

モデルでインスタンス メソッドを定義してorder_byCarデフォルト値を返す必要があります。

def order_by
  "your default order_by" #will determine the default selected order_by on a form
end

PSこのメソッド、または少なくともattr_reader :order_byまたはattr_accessor :order_byが必要です。そうしないと、Execptionが発生しますf.select :order_by

于 2012-12-10T05:36:04.657 に答える