我正在使用geocomplete插件在我的表单中自动填写地址表单。
地理填充仅识别具有设置名称属性的表单字段,例如
<input name="lat" class="lat" type="text" value="">
<label>Longitude</label>
<input name="lng" class="lng" type="text" value="">
<label>GPS</label>
<input name="location" type="text" value="">
另外,它不能找到给定形式的字段来完成。
下面是rails 4中的表单
<%= form_for(@property, :url => landlord_properties_path(current_landlord)) do |f| %>
<div class="form-group selection property type">
<%= f.text_field :name,class: "geocomplete" %>
<%= f.text_field :lng,class: "lng" %>
<%= f.hidden_field :lat,class: "lng" %>
<%= f.submit "add" %>
<% end %>
然而,生成的HTML具有嵌套属性,如
<input class="lng" id="property_lng" name="property[lng]" type="text">
将属性添加到属性中,因此geocomplete将无法找到该表单。
如何自定义name属性
name ="lng"
仍然将属性发送到当前的@property对象并将其传递给控制器?
编辑
因此解决方案是将'name'=>'lng'
添加到文本字段,这非常有效!
但是,现在属性没有超过强参数
这是property_params
def property_params
params.require(:property).permit(:name,:lat,:lng)
end
以下是传递给表单参数
的内容 Parameters: {"utf8"=>"✓", "authenticity_token"=>"uXfT7XUZBuedbfAj8OaDMT673txmk379BM5PENQBRsk=", "property"=>{"name"=>"100 Kent Street, Ottawa, ON, Canada", "lat"=>""}, "lng"=>"-75.70343909999997", "commit"=>"add", "dependent"=>:destroy, "landlord_id"=>"1"}
似乎属性是包含值的哈希,但是lng现在是属性哈希之外的单独事物,因此它不会写入数据库
如何设置自定义参数让lng进入属性控制器对象?
答案 0 :(得分:4)
将此添加到f.text_field:
'name'=>"lng"