我正在构建一个应用程序,其中用户有任务,任务有位置 . 使用formtastic_cocoon将任务和位置放在nested_form中,formtastic_cocoon是带有jQuery扩展的formtastic gem .
location.address字段是一个自动填充文本字段,用于搜索数据库中已存在的地址 . 因此,当用户选择地址时,将填充表单中的隐藏location_id .
我想要做的是,当用户去编辑任务时,我希望它显示当前选择的地址,但我没有看到任何可以检索该值的地方 . 我可以获得location_id,因为它在任务模型中,但我似乎无法获得关联的location.address .
模特是
class Task < ActiveRecord::Base
attr_accessible :user_id, :date, :description, :location_id
belongs_to :user
has_one :location
end
class Location < ActiveRecord::Base
attr_accessible :address, :city, :state, :zip
has_many :tasks
end
然后以我的形式,我有
<div class="nested-fields">
<%= link_to_remove_association "remove task", f %>
<div class="searchAddress">
< input type="text" value="HERE IS WHERE I WANT TO SHOW THE ADDRESS" >
</div>
<%= f.hidden_field :location_id %>
<%= f.inputs :date, description %>
</div>
-----------编辑包含所有形式代码---------------
form.html.erb
<%= semantic_form_for @user, :html=>{:multipart=true} do |form| %>
<%= form.inputs :username, :photo %>
<%= form.semantic_fields_for :tasks do |builder | %>
<%= render 'task_fields', :f => builder %>
<% end %>
<% end %>
-------结束编辑--------------我试过输出'f'的不同方式,但是没有看到任何对相关位置的引用,但是如果我调试的话User.Task [0] . 在表单之外的位置,我得到了正确的位置详细信息 . 如何在表单中获取?
---------更新------------
更加接近这一点 . 事实证明我可以输出
<%= debug f.object %>
我得到了返回的任务对象 . 不幸的是,它不包括location对象,只包含location_id字段的值 .
1 回答
你试过@ task.location.address吗?