1

本当に奇妙ですが、モデルを追加すると:

serialize :source, Array

デフォルトでは、入力フィールドには、ページをロードするたびに「 [] 」記号が含まれています。

シリアル化を削除すると、消えます。しかし、ビュー自体のコードは変更されていないため、このブラケットを削除する方法がわかりません。

本当に迷惑です、助けてください。

4

1 に答える 1

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 -%>
    
于 2013-04-17T12:18:55.057 に答える