Rails从一个表单创建两个对象

时间:2012-12-10 12:33:21

标签: ruby-on-rails ruby-on-rails-3

我有两个模型,它们之间有一个has_one关系。 “has_one”Event的{​​{1}}类。我想要实现的是我创建一个事件的形式,我有一个“哪里?”通过Foursquare API异步填充的字段。

由于我无法将整个Foursquare API迁移到我自己的数据库,因此我希望在第一次在事件中提及位置时在我的数据库中生成Location条目。

目前我正在寻找的结果已经完成,但我认为我正在使用许多隐藏的字段和大量的javascript任务。有没有比我用来获得相同结果的更好的练习?

new.html.erb

Location

事件控制器

<%= form_for :event, :url=> new_event_path, :method => :get, :remote => :true, :html => {:class => 'form-horizontal'} do |f| %>

   <%= fields_for :location do |f1|%>
   <%= f1.hidden_field :lat, :id=> 'foursquare-latitude' %>
   <%= f1.hidden_field :lng, :id => 'foursquare-longitude' %>
   <%= f1.hidden_field :foursquare_id, :id =>'foursquare-id' %>
   <%= f1.hidden_field :name, :id =>'location-name-field' %>

    <% end %>

    <!-- TODO Encapsulate in location model -->
    <%= f.hidden_field :latitude, :id=>'latitude-field' %>
    <%= f.hidden_field :longitude, :id=>'longitude-field' %>

<div class="control-group">
  <%= f.label :title , :class => "control-label" %>
  <div class="controls">
    <%= f.text_field :title %>
  </div>
</div>
<div class="control-group">
  <label class="control-label" for="location">Where?</label>
  <div class="controls">
    <input type="text" id="location" data-provide="typeahead">
    <br/>
    <img src="../img/fsq.png" alt="Powered By Foursquare" width="240px" />
  </div>
</div>
<div class="control-group">
  <%= f.label :body, :class => "control-label" %>
  <div class="controls">
    <%= f.text_area :body, :rows => 6 %>
  </div>
</div>
<div class="control-group">
  <div class="controls">
    <%= f.submit %>
  </div>
</div>

<% end %>

0 个答案:

没有答案