0

次のサンプルコードを考えます。

@user = User.last
user.first_name.attr_name #this should return "first_name"

Railsに「attr_name」メソッドのようなものはありますか?

前もって感謝します

4

2 に答える 2

1

あなたはこれを行うことができます(しかし多分あなた自身に理由を自問してください):

user.attributes.key(user.first_name)

..."first_name"文字列として返されます。

于 2012-10-08T18:20:34.890 に答える
0

モデルの属性を一覧表示するには、を使用できますcolumn_names

たとえば、User.column_names次のようなものを返します。

["id"、 "email"、 "encrypted_pa​​ssword"、 "reset_password_token"、 "reset_password_sent_at"、 "remember_created_at"、 "sign_in_count"、 "current_sign_in_at"、 "last_sign_in_at"、 "current_sign_in_ip"、 "last_sign_in_ip" updated_at」、「name」、「confirmation_token」、「confirmed_at」、「confirmation_sent_at」、「account_id」、「account_primary」]

次に、この配列を反復処理できます。たとえば、User.column_name[1]を返し"email"ます。

各属性の詳細を表示するには、を使用しますcolumns。の出力は次のUser.columnsようになります。

[#<ActiveRecord :: ConnectionAdapters :: Mysql2Adapter :: Column:0x007fd6942b1840 @ name = "id"、@ sql_type = "int(11)"、@ null = false、@ limit = 4、@precision = nil、@ scale = nil、@ type =:integer、@ default = nil、@ primary = true、@ coder = nil、@ collat​​ion = nil>、#<ActiveRecord :: ConnectionAdapters :: Mysql2Adapter :: Column:0x007fd694434348 @ name = "email"、 @ sql_type = "varchar(255)"、..。

モデルのインスタンスから属性を一覧表示するには、MrTheWalrusの提案をUser.first.attributes使用できます。最初のユーザーの属性のハッシュとその値を返します。

これがお役に立てば幸いです。

于 2012-10-08T18:37:26.047 に答える