質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

6129閲覧

ActiveRecordで1レコードの全カラムを表示する簡単な方法

the_red

総合スコア14

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/01/22 07:50

###前提・実現したいこと
ActiveRecordで1レコード分のデータが変数に入っている場合、
デバッグ時などに1レコードの全カラムをとりあえずブラウザで表示したいことが多いので、
ERBのコードでどう書けば一番簡単に実現できるでしょうか。

###該当のソースコード
モデル名が「Student」だとして

ERB

1<dl> 2 <% Student.column_names.each do |column| %> 3 <dt><%= column %></dt> 4 <dd><%= @student.send(column) %></dd> 5 <% end %> 6</dl>

こう書けばとりあえずできました。もっとスマートな方法があればご教授ください。

###補足情報(言語/FW/ツール等のバージョンなど)
Mac OS X El Capitan(10.11.6)
Ruby 2.3.1
Rails 5.0.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

inspect というメソッドは 列名、値を文字列にするメソッドです。
このコードを参考にすると、質問文にある方法以外にも、いろいろな方法を思いつくと思います。

attributes を使う, attribute_for_inspect を使う...

投稿2017/01/22 14:01

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

the_red

2017/01/29 03:07

ありがとうございました! attributesメソッドを使うと、自分が最初にイメージしていたようなコードになりました。 ``` <dl> <% @student.attributes.each do |attr_name, value| %> <dt><%= attr_name %></dt> <dd><%= value %></dd> <% end %> </dl> ``` 分かってしまえば「なーんだ」って感じですが、 メソッドを知ってるか知らないかで全然違いますね。。。精進します。 リンク先のコードも大変参考になりましたm(._.)m
guest

0

Debugging Rails Applications — Ruby on Rails Guides で解説されていますが、

debugヘルパーを使う

<%= debug @article %>

to_yamlでYAMLに変換したあとsimple_formatヘルパーで表示する

<%= simple_format @article.to_yaml %>

ただ、基本的にはViewでデバッグ出力を行うのは避けるべきです。デバッグコードの消し忘れなどがあると、意図しない情報出力を招くセキュリティホールになるおそれがあります。

上記URLの続きに記載がありますが、Loggerを使ってきちんとログに落とす方がよいでしょう。

投稿2017/01/25 12:57

suzukis

総合スコア1449

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

the_red

2017/01/29 03:13

ありがとうございました! そもそも 「基本的にはViewでデバッグ出力を行うのは避けるべきです。」 ということですよね。。。 恥ずかしながら、Viewでprintデバッグばかりやっていたので、 もう少しデバッグの効率化も勉強し直したいと思いますm(._.)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問