我正在使用Rails 3.2.5和rails3-jquery-autocomplete。 我的方法是:我有一個名爲「supplier_name」的attr_accessor,當用戶填充自動完成並選擇propper供應商時,它會使用供應商的id填充字段「suplier_id」。 當我爲表單創建自動填充字段時,我發現了一個問題,每當我編輯記錄時,supplier_name attr_accessor都變空了。檢查代碼,我可以看到隱藏字段「supplier_id」填寫正確。如何在ActiveRecord驗證錯誤後填充自動填充
所以,我定是這樣,只是一個例子:
class Invoice < ActiveRecord::Base
belongs_to :supplier
...
attr_accessor :supplier_name
attr_accessible :some_stuff, :supplier_name, :supplier_id, :some_other_stuffs
validates :some_stuff, presence: true
def supplier_name
self.supplier_name.company_name unless self.new_record? rescue ""
end
所以,太棒了!我解決了我的問題編輯但是...如果我創建一個新的記錄,提交,並忘記填寫字段:some_stuff,「supplier_name」將變空,但「supplier_id」將正確填寫。
那麼,最好的解決方法是什麼?
感謝您的任何幫助。
Unfortunally的應用程序保持相同的行爲,沒有進步! :( – drmwndr
我更新了代碼,試試新版本 –
感謝Ballona,問題已經解決,將self.supplier_name.try(:company_name)替換爲「self.supplier_name.company_name,除非self.new_record?rescue self」 – drmwndr