Ruby on rails 在选择框中保存id时出错
我想从选择框中保存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
|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的元素,就像控制器中的条件所说的那样