2013-04-17 120 views
1

這是很奇怪的,但是當我在我的模型添加:Rails的修改輸入字段,因爲我不想

serialize :source, Array 

默認輸入字段具有「[]」符號的任何時間內你加載頁面。

當我刪除序列化,它消失。但視圖中的代碼本身沒有修改,所以我不知道如何刪除這個括號。

這真的很煩人,請幫助我。

回答

2

http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-serialize

Active Record的序列化可以使用YAML文本列的任何對象。爲此,您必須通過調用類方法serialize來指定。這使得可以存儲數組,哈希和其他不可映射的對象,而無需做任何額外的工作。

class User < ActiveRecord::Base 
    serialize :preferences 
end 

我想,你有你的觀點類似<%= @my_model.source %>

現在,如果您從模型中刪除serialize :source, Array,則@my_model.source的類型爲字符串,並且您的視圖會輸出空字符串(無)。

如果添加serialize :source, Array到模型中的@my_model.source類型是數組。在<%= @my_model.source %>期間轉換爲字符串的空陣列正好是您看到的:[]

這真是煩人,請幫幫我。

爲了幫助您,我需要知道您確實想要歸檔的內容。

  • 應該source是一個字符串,刪除serialize :source, Array和快樂
  • 應該source是一個數組,重寫你的看法輸出數組遍歷它的元素。例如:

    <%- @my_model.source.each do |v| -%> 
        <li><%= v %></li> 
    <%- end -%> 
    
+1

感謝...我需要用戶輸入的字符串,其軌道轉換到陣列。剛剛添加了另一列,該列是序列化的,從源接收輸入並保存爲數組 –

相關問題