2011-02-07 28 views
2

をrails3これは、入力にデータを配列を使用していますので、私はいくつかの配列を作成しようとしています私のデータのうち、ルビーでは、私はJavaScriptで印刷することができます。
、つまり@array_example = [1,2,3,4,5]は印刷されませんが、@array_example = "[1,2,3,4,5]"が機能します。とにかくが、私は私のアプリのいくつかのグラフを作成しようとしている、と私は<a href="http://www.jqplot.com/index.php" rel="nofollow">http://www.jqplot.com/index.php</a></p> <p>の使用を開始しました

私が持っている場合は、最初の私の質問は、次のようになります。

<% @chart_posts = Post.where(:user_id => @profile.user.id) %> 

いただきました私は、アレイ内の各ポストのIDが必要な場合は(配列を作るためにこのデータを使用するには良い方法、およびcreated_atの2番目の配列)?

もう少し明確になるためには、最終的な不自然さは印刷されたときに配列のように見える必要があります。
つまり、その周囲には[が、また各アイテムの間には,がある必要があります。

+2

注:投稿モデル 'belongs_to:user'とユーザーモデル' has_many:postのように見えるのでそのPost.where句の代わりに '@ profile.user.posts'を書くことができます。 – danneu

答えて

3

最終的なアレイの外観はあまり明確ではありませんが、私はmapが必要なものを手に入れなければならないと思います。

ids = @chart_posts.map(&:id) 
# => [1,2,3,4] 

created_ats = @chart_posts.map(&:created_at) 
# => [timestamp,timestamp,timestamp,timestamp] 
あなたはまた、同様にマップを持つ単一の2D配列にそれを組み合わせることができ

array = @chart_posts.map {|post| [post.id, post.created_at]} 
# => [[1, timestamp],[2,timestamp]] 
+0

'配列のように見える'ために、javascriptに直接埋め込んでいる場合は、 'array.to_json'を使ってすべての文字列をエスケープすることができます。 – Chubas

+0

また、 'array.inspect'を使うこともできます。これは人間が読める出力を目指すようです。 –

1

はグロス・PHPの牛車のように見える...

が、みんなが上に言っているものに参加

id_array_string = @chart_posts.map(&:id).inspect 
# => "[1,2,3,4]" 

timestamp_array_string = @chart_posts.map(&:created_at).inspect 

# => "[timestamp,timestamp,timestamp]" 
関連する問題

 関連する問題