2011-02-15 43 views
1

我正在构建一个应用程序,其中用户具有任务且任务具有位置。 任务和位置使用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> 

-----------编辑成包括所有formtastic代码----- ----------

 
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 %> 

-------端编辑-------------- 我试图outputing“F的不同方式',但没有看到y引用关联的位置,但如果我在表单外调试User.Task [0] .Location,我会得到正确的位置详细信息。我如何获得这个表单?

---------更新------------

接近这一点。原来我可以输出

 
<%= debug f.object %> 

我得到了返回的任务对象。不幸的是,它不包含位置对象,只是location_id字段的值。

+0

你正在`<%= form_for @task do | f | %>`,对吗? – LapinLove404 2011-02-15 17:12:50

+0

类似,我在使用Formtastic的semantic_fields_for更像一个fields_for比form_for – pedalpete 2011-02-15 17:17:02

回答