ユーザーにタスクがあり、タスクに場所があるアプリを構築しています。タスクと場所は、jQuery 拡張機能を持つ formtastic gem である formtastic_cocoon を使用して、nested_form 内にあります。
location.address フィールドは、データベースに既に存在する住所を検索するオートコンプリート テキスト フィールドです。そのため、ユーザーが住所を選択すると、フォーム内の非表示の location_id が入力されます。
私がやろうとしているのは、ユーザーがタスクを編集しようとすると、現在選択されているアドレスを表示したいのですが、その値を取得できる場所がどこにもありません。タスク モデルにあるように、location_id を取得できますが、関連する location.address を取得できないようです。
モデルは
class Task < ActiveRecord::Base
attr_accessible :user_id、:date、:description、:location_id
所属先:ユーザー
has_one :場所
終わり
クラス Location < ActiveRecord::Base
attr_accessible :address、:city、:state、:zip
has_many :タスク
終わり
それから私の形で、私は持っています
<div class="nested-fields">
<%= link_to_remove_association "タスクの削除", f %>
<div class="searchAddress">
< input type="text" value="住所を表示したい場所はここです" >
</div>
<%= f.hidden_field :location_id %>
<%= f.inputs :date, description %>
</div>
-----------すべてのformtasticコードを含めるように編集 ---------------
form.html.erb
<%= Semantic_form_for @user, :html=>{:multipart=true} do |フォーム| %>
<%= form.inputs :ユーザー名, :写真 %>
<%= form.semantic_fields_for :tasks do |ビルダー | %>
<%= render 'task_fields', :f => ビルダー %>
<%終了%>
<%終了%>
------- 編集終了 -------------- 「f」の別の方法を出力しようとしましたが、関連する場所への参照が表示されませんが、デバッグするとUser.Task[0].Location フォームの外側に、正しい場所の詳細が表示されます。フォーム内でそれを取得するにはどうすればよいですか??
- - - - - アップデート - - - - - -
これに少し近づいています。出力できることがわかりました
<%= デバッグ f.object %>
タスク オブジェクトが返されます。残念ながら、これには location オブジェクトは含まれず、location_id フィールドの値のみが含まれます。