0

これは、私が解決できた以前の問題の続きです。パラメーターが正しく保存されない(Rails)

しかし今、私は見知らぬ問題に遭遇しました。保存するパラメーターを取得できますが、参照しようとすると応答しません。

モデル:

# == Schema Information
#
# Table name: messages
#
#  id             :integer          not null, primary key
#  content        :text
#  sender_id      :integer
#  recipient_list :text
#  created_at     :datetime         not null
#  updated_at     :datetime         not null
#

class Message < ActiveRecord::Base
  attr_accessible :content, :sender_id, :recipient_list
  attr_reader :recipient_list #necessary for jquery-token-fields
  serialize :recipient_list, Array

  validates :content, presence: true
  validates :sender_id, presence: true

  def recipient_list=(ids) #necessary for jquery-token-fields
    recipient_list = ids.split(",")
    super(recipient_list)
  end
end

物体:

#<Message id: 60, content: "foobar123", sender_id: 1, recipient_list: ["1", "2"], created_at: "2012-08-23 06:40:00", updated_at: "2012-08-23 06:40:00">]

意見:

<%= Message.find_by_id(60).content %>
<%= Message.find_by_id(60).recipient_list %>

その結果、コンテンツの呼び出しは期待どおりに返されます。 "foobar123"ただし、recipient_listの呼び出しはnilのみを返します。そこには明らかに価値があるにもかかわらず。私は、recipient_list =(ids)メソッドが、@message.recipient_listが実行する通常の関数をオーバーライドしている可能性があると考えています。私は少なくとも正しい球場にいますか?何が起きてる?

4

1 に答える 1

1

この行で getter を使用してデフォルトrecipient_listのメソッドを 再定義しました。

attr_reader :recipient_list #necessary for jquery-token-fields

取り除かなければならないと思います。その後、すべてがうまくいくはずです。

あなたのコメントが何を意味するのかわかりません。あなたのモデルには、すべてのテーブル列のゲッターとセッターがあります。

于 2012-08-23T09:42:06.510 に答える