2012-05-08 10 views
0

モデル内のアクセサを反復処理できますか?モデル内のアクセサを反復処理するにはどうすればよいですか?

私がどのように見えるのモデルがあります:

class Account < User 
    #Required fields 
    attr_accessor :email, :first_name, :last_name, :organizations 
end 

私は

@name : email 
@value : [email protected] 

@name : first_name 
@value : nick 

のように見えるJSONの背中を取得し、私はのようなコードの束があります

unless(item.Field["@name"].to_s.match('E-mail').nil?) 
    @account_new.email = item.Field["@value"].to_s 
    end 

    unless(item.Field["@name"].to_s.match('First Name').nil?) 
    @account_new.first_name = item.Field["@value"].to_s 
    end 

ひどいコードです。私のモデルでアクセサーを繰り返し処理し、アクセサの名前を取得し、それを使ってJSONオブジェクトのパターンマッチングを行い、割り当てを行うことができますか?

私は、.instance_variables.eachを使用して試しました。

しかし、それは私がそれがすべきと思ったように動作していないようです。これを行うより良い方法はありますか? Rubyで

答えて

0

、属性は、メッセージを送信することにより設定することができます。

key = item.Field["@name"] 
value = item.Field["@value"] 
@account_new.send("#{key}=", value) 
+0

感謝を!正確に私が探していたもの、もう一度感謝します。 – user1357182

+0

あなたは大歓迎です:) – ccyrille

関連する問題