データベースからデータを取得しています。 JSONで送信します。Rails - フィールドを動的に追加するために、ActiveRecordを単純なオブジェクトに変換します。
事は、私は動的にフィールド "CAMPAIGN_NAME" を追加する必要があり、です。
def loadtimeline
@act = Activity.order('created_at desc').paginate(:page => params[:page], :per_page => 40)
@act.each do |item|
item.attributes[:campaign_name] = item.campaign.name
end
respond_to do |format|
format.json do
render json: @act
end
end
end
最後に、クライアントをチェックすると、新しいフィールドは表示されません。
私はそれがこのオブジェクトに関連している可能性があると私に語ったActiveRecordモデルです。だから私はそれをオブジェクトとして変換しようとしています。
これは可能ですか、必要なフィールドを追加する方法はありますか?
ありがとうございました。
EDIT1。 私は正確ではありませんでしたが、item.campaign
は他のモデルキャンペーンに属しています。
class Activity < ActiveRecord::Base
belongs_to :user
belongs_to :campaign
attr_accessor :campaign_name
def item
if item_path && item_id
case item_path
when /todo/
Todo.find(item_id)
when /content/
Content.find(item_id)
when /netlinking/
Netlinking.find(item_id)
else
nil
end
end
end
end
あなたの活動モデルは右、キャンペーンに属していますか? (campaign_id) – Anton
したがって、jbulderのようなものを使用するか、シリアライザで構築する場合は、キャンペーンをアクティビティクエリに含めることができ、その名前をビューに直接フェッチすることができます。 – Anton
私はそれをシリアル化しようとします。ありがとう! –