0

したがって、現在、次の関連付けを持つ2つのモデルがあります。

class DnsRecord < ActiveRecord::Base
  validates :name, :presence => true, :uniqueness => true

  has_one :ip_address

  attr_accessible :name
end

class IpAddress < ActiveRecord::Base
  validates :ipv4, :presence => true, :uniqueness => true, :length => { :maximum => 45 }
  validates :ipv6, :presence => true, :uniqueness => true, :length => { :maximum => 45 }

  belongs_to :dns_record

  attr_accessible :ipv4, :ipv6
end

dns_record ビュー (/app/views/dns_records) で、新しい dns_recrod ページを作成しているときに、現在存在する ip_addresses のドロップダウン選択が必要です。このようにして、新しい dns_record を作成すると、関連する ip_address_id が関連付けられます。

私はルビーとレールに非常に慣れていないので、誰かが私を正しい方向に向けることができれば、それは大歓迎です.

4

2 に答える 2

0

Twitter ブートストラップはあなたにぴったりです。 http://twitter.github.com/bootstrap/javascript.html#dropdowns

それはあなたを始めさせ、ドロップダウンをレールアプリに組み込む方法を示します. それはあなたのためにすべての面倒な作業を行います。楽しみ。

于 2012-05-09T16:13:31.060 に答える
0

思い通りの関連付けができているかどうかはわかりません。あなたの質問から、私はあなたが望むと思います:

class DnsRecord < ActiveRecord::Base
  validates :name, :presence => true, :uniqueness => true
  belongs_to :ip_address
end

class IpAddress < ActiveRecord::Base
  validates :ipv4, :presence => true, :uniqueness => true, :length => { :maximum => 45 }
  validates :ipv6, :presence => true, :uniqueness => true, :length => { :maximum => 45 }
  has_one :dns_record
  attr_accessible :ipv4, :ipv6
end

その場合、collection_select を使用して dns_record オブジェクトの ip_address を設定できます。例:

<% form_for @dns_record do |f| %>
  <%= f.collection_select :ip_address_id, IpAddress.all, :id, :ipv4 %>
<% end %>

上記は、@dns_record オブジェクトを操作していて、dns_records テーブルに ip_address_id (FK) 列があることを前提としています。これにより、ドロップダウンの値として ip_addresses.ipv4 の値も使用されます。

于 2012-05-09T16:29:30.670 に答える