ユーザーにタスクがあり、タスクに場所があるアプリを構築しています。タスクと場所は、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 フィールドの値のみが含まれます。