2013-10-23 38 views
2

我有這樣的形式/new.html.erb:未定義的方法'合併」的 「XXXXXX」:字符串軌的form_for

<%= form_for @vendor, multipart: true do |f| %> 
<%= f.text_field :name, "Store Name" %> 
<%= f.text_field :address, "Store Address" %> 
<%= f.file_field :image %> 
<%= f.submit "Save", class: "btn btn-success" %> 
<% end %> 

而這些供應商的方法:

def new 
    @vendors = Vendor.all 
    @vendor = Vendor.new 
end 

def vendor_params 
    params.require(:vendor).permit(:id, :name, :latitude, :longitude, :address, :image) 
end 

當我嘗試渲染頁面,我得到這個錯誤:

undefined method `merge' for "Store Name":String 
Extracted source (around line #8): 

5: <h4>New Vendor Form</h4> 
6: 
7: <%= form_for @vendor, :html => {:multipart => true} do |f| %> 
8: <%= f.text_field :name, "Store Name" %> 
9: <%= f.text_field :address, "Store Address" %> 
10: <%= f.file_field :image %> 
11: <%= f.submit "Save", class: "btn btn-success" %> 

我不知道爲什麼merge正在這裏調用。它可能在隱藏領域嗎?我發現與這個錯誤有關的大部分答案都與隱藏字段有關。我使用的解析器解析lat和長像這樣的驗證後(不知道這是相關的):

class Vendor < ActiveRecord::Base 


    geocoded_by :address 
    after_validation :geocode, 
     :if => lambda{ |obj| obj.address_changed? } 
end 

這裏的任何幫助深表感謝!提前致謝。

+0

您可以通過這個字符串,你可以通過一些選項(哈希)http://api.rubyonrails.org/classes/ActionView/Helpers/表單助手.html#method-i-text_field – userxyz

回答

4

,你應該這樣寫,因爲你的第二個參數應該是一個選項哈希,它不應該是一個值..

<%= form_for @vendor, multipart: true do |f| %> 
<%= f.text_field :name, :value => "Store Name" %> 
<%= f.text_field :address, :value => "Store Address" %> 
<%= f.file_field :image %> 
<%= f.submit "Save", class: "btn btn-success" %> 
<% end %> 
+0

這樣做了,謝謝! – settheline

0

試着改變你的形式像下面

7: <%= form_for @vendor, :html => {:multipart => true} do |f| %> 
8: <%= f.text_field :name %> 
9: <%= f.text_field :address %> 
10: <%= f.file_field :image %> 
11: <%= f.submit "Save", class: "btn btn-success" %> 

第二個參數是text_filed名稱的一部分,而你的情況會弄亂你的參數

相關問題