わかりましたので、私のモデルとコントローラーを以下に示します。私ができるようにしたいのは、ユーザーが新しいリースを追加するときに、ユーザーがすでにデータベースにあるプロパティのリストからプロパティ ID を選択し、ファイル上のテナントのリストからテナント ID を選択できることです。 . 私はレールに比較的慣れていないので、これをどのように行うのかまったくわかりません。コントローラーに @property = Property.all @tenant = Tenant.all を配置してアクセスできるようにしましたが、必要な方法でそれらを活用する方法がわかりません。
リースモデル
class Lease < ActiveRecord::Base
attr_accessible :lease_end, :lease_start, :property_id, :tenant_id
belongs_to :tenant
belongs_to :property
end
プロパティモデル
class Property < ActiveRecord::Base
attr_accessible :address_line_1, :city, :county, :image, :rent
belongs_to :lease
end
テナント モデル
class Tenant < ActiveRecord::Base
attr_accessible :email, :name, :phone
belongs_to :lease
end
新しいリースを追加し、リースを編集するためのリース コントローラ メソッド
def new
@lease = Lease.new
@property = Property.all
@tenant = Tenant.all
respond_to do |format|
format.html # new.html.erb
format.json { render json: @lease }
end
end
# GET /leases/1/edit
def edit
@lease = Lease.find(params[:id])
@property = Property.all
@tenant = Tenant.all
end
編集: ドロップダウン ボックスは動作しますが、オプションは私が望むものではありません。テナントの # やプロパティの # などのオプションを取得しています。代わりに、テナントの名前とプロパティのアドレスを取得できたらいいのにと思います
tereskoの提案で更新された _form ファイル コード
<%= form_for(@lease) do |f| %>
<% if @lease.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@lease.errors.count, "error") %> prohibited this lease from
being saved:</h2>
<ul>
<% @lease.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :tenant_id %><br />
<%= f.select :tenant, options_for_select(@tenants) %>
</div>
<div class="field">
<%= f.label :property_id %><br />
<%= f.select :property, options_for_select(@properties) %>
</div>
<div class="field">
<%= f.label :lease_start %><br />
<%= f.date_select :lease_start %>
</div>
<div class="field">
<%= f.label :lease_end %><br />
<%= f.date_select :lease_end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>