私のコントローラーでは、クエリを実行して、次のように別のテーブルで参照されていないすべての ID を取得しようとしています。
@vlan_numbers = ActiveRecord::Base.connection.execute("SELECT pop_vlans.id, vlan_number FROM pop_vlans WHERE pop_vlans.id NOT IN (SELECT logical_interfaces.vlan_id FROM logical_interfaces) AND pop_id != " + @pop_id.to_s)
次に、私の見解では、collection_select
これらをドロップダウンメニューに表示するために使用しようとしています:
しかし、私が得るエラーはundefined method 'vlan_number' for [2, "2"]:Array
、これらの値がクエリの結果の最初の行にすぎないことです。
これは、関連する 2 つのテーブルの図です。
logical_interfaces | pop_vlans
-------------------|-----------
vlan_id-------|----->id
.... | vlan_number
モデルの関係は次のとおりです。
pop_vlan.rb
belongs_to :logical_interface
logical_interface.rb
# no relationship defined
アップデート
フォームの生成方法は次のとおりです。
<%= form_tag :controller => "circuit", :action => "update" %>
# other inputs
<%= select_tag options_for_select(@vlan_numbers) %>
# other inputs
</form>