現在のユーザーの受信トレイ メッセージを返す次のコントローラー アクションがあります (メールボックスを使用しています)。
def index
@conversations = mailbox.inbox
render :template => "/api/communications/index.json.jbuilder"
end
これにより、jbuilder が起動する json 応答がレンダリングされます。
json.array!(@conversations) do |conversation|
json.id conversation.id
json.sender conversation.last_sender.name
json.subject conversation.subject
json.body conversation.last_message.body
json.current_user_id current_user.id
json.current_user_name current_user.name
json.admin current_user.is_admin?
end
application_controller で宣言されたヘルパー メソッドである current_user から構築された最後の 3 つの json 値に注意してください。ここで 2 つの質問があります。
1) この種の機能はありますが、current_user の値を配列から切り離した方がよいでしょう。それらを単にブロックの外に移動すると、次のエラーが発生します。
TypeError (文字列を整数に変換できません)
2) current_user の受信トレイに会話がない場合、配列は空になり (@conversations は空白)、current_user の値は渡されません。
要約すると、 current_user 値を既存の配列に追加したり、 current_user 値を空の配列に追加したりできますか?