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_by您应该在模型中定义一个实例方法Car以返回默认值:

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,否则你会得到一个执行f.select :order_by

于 2012-12-10T05:36:04.657 回答