Ruby on rails 在选择框中保存id时出错

Ruby on rails 在选择框中保存id时出错,ruby-on-rails,ruby,ruby-on-rails-2,Ruby On Rails,Ruby,Ruby On Rails 2,我想从选择框中保存Id,但不保存第一个和第二个选项 这是我的桌子: |Invoice_Cias| |id| |name| 1 ABC 2 DEF 3 GHI 4 JKL |Invoices| |id| |invoice_cia_id| 1 1 2 2 3 3 4 4 这是控制器 class InvoiceControl

我想从选择框中保存Id,但不保存第一个和第二个选项

这是我的桌子:

|Invoice_Cias|
  |id|   |name|
    1     ABC
    2     DEF
    3     GHI
    4     JKL

|Invoices|
  |id|   |invoice_cia_id|
    1         1
    2         2
    3         3
    4         4
这是控制器

class InvoiceController < ApplicationController   

  def new_invoice
     @cias = InvoiceCia.find(:all,:conditions=>['id IN (1,2)'])
     @cias2 = InvoiceCia.find(:all,:conditions=>['id NOT IN (1,2)'])
     @invoice = Invoice.new 
  end

  def create
     @invoice = Invoice.new(params[:invoice])
  end

end
   @cias2 = InvoiceCia.find(:all,:conditions=>['id NOT IN (1,2)'])
问题是,当我选择第一个或第二个选项时,ABC=1或DEF=2总是保存id=3

当我没有选择第一个和第二个选项并且我想保存id=1或id=2时,工作正常

请有人能帮我吗?

从您的控制器

class InvoiceController < ApplicationController   

  def new_invoice
     @cias = InvoiceCia.find(:all,:conditions=>['id IN (1,2)'])
     @cias2 = InvoiceCia.find(:all,:conditions=>['id NOT IN (1,2)'])
     @invoice = Invoice.new 
  end

  def create
     @invoice = Invoice.new(params[:invoice])
  end

end
   @cias2 = InvoiceCia.find(:all,:conditions=>['id NOT IN (1,2)'])
您可以升级选项以从此对象中选择

   <%= f.select :invoice_cia_id ,options_for_select(@cias2.collect {|t| [t.name,t.id]} )  %>
并且这个对象不包含id为1或2的元素,就像控制器中的条件所说的那样