我希望从选择框中保存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
以下是观点: &lt;%form_for @invoice,:url =&gt; {:控制器=&GT;&#34;发票&#34;,:动作=&GT;&#39;创建&#39;} ,: HTML =&GT; {:ID =&GT;&#34; new_client_form&#34;} &lt;%= options_for_select(@ cias.collect {| t | [t.name,t.id]})+&#34; OTROS&#34; %GT;
<p><div id="info1" style="display:none;">
Others CIAS:
<%= f.select :invoice_cia_id ,options_for_select(@cias2.collect {|t| [t.name,t.id]} ) %>
</div>
<div id="info2" style="display:none;"></div>
</p>
这是演示
http://jsfiddle.net/HgqNf/42/
问题是我选择第一个或第二个选项&#34; ABC&#34; = 1或&#34; DEF&#34; = 2总是保存id = 3
当我没有选择第一个和第二个选项并且我想保存id = 1或id = 2
时工作正常请有人帮助我吗?
答案 0 :(得分:0)
从您的控制器
@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的元素作为控制器中的条件。