モデルPost
に次のようなメソッドがあります。
def self.post_template
posts = Post.all
result = []
posts.each do |post|
single_post = {}
single_post['comment_title'] = post.comment.title
single_post['comment_content'] = post.comment.content
result << single_post
end
# return the result
result
end
私の rake タスクの 1 つで、関数を呼び出します。
namespace :post do
task :comments => :environment do
comments = Post.post_template
puts comments
end
end
コンソールでは、戻り値はArray
;ではありません。代わりに、改行で区切られたすべてのハッシュを出力します。
{ 'comment_title' => 'stuff', 'comment_content' => 'content' }
{ 'comment_title' => 'stuff', 'comment_content' => 'content' }
{ 'comment_title' => 'stuff', 'comment_content' => 'content' }
ただし、これを で実行するとrails console
、期待どおりの動作が得られます。
> rails c
> comments = Post.post_template
-- [{ 'comment_title' => 'stuff', 'comment_content' => 'content' },
{ 'comment_title' => 'stuff', 'comment_content' => 'content' }]
言うまでもなく、私はかなり混乱しており、何らかのガイダンスが欲しいです! ありがとうございました。
編集:
rake タスクは単純にこのような配列を出力するようですが、配列の結果を別のハッシュに設定すると、配列の整合性が維持されないようです:
namespace :post do
task :comments => :environment do
comments = Post.post_template
data = {}
data['messages'] = comments
end
end
Mandrill
これらのメッセージを作成するために (plugin for ) を使用Mailchimp
していますが、渡したものが ではないというエラーがスローされますArray
。