2013-06-29 3 views
0

Я пытаюсь создать динамический метод find_by в приложении rails 3. То, что я пытаюсь сделать следующее:Как создать динамический метод find_by?

My_dynamic_find(Model, {attribute_hash}) 

метод будет работать следующим образом на модели пользователя:

My_dynamic_find(User, {:name => "Bill", :gender => "male", :weight => 200) 

метод затем выполнить следующие действия:

User.find_by_name_and_gender_and_weight("Bill","male",200) 

ли это возможно и является примером метапрограмм.

+1

Вы имеете в виду «User.where (: name =>« Bill »,: gender => 'male',: weight => 200)'? Это не метапрограммирование. – lurker

+0

Вау, я был настолько сосредоточен на том, как понять это с помощью Find_by, что я полностью забыл о том, где. Благодарю. Если вы хотите сделать его ответом на все свое. Еще раз спасибо. – Mutuelinvestor

ответ

1

Просто используйте:

User.where(:name => 'Bill', :gender => 'male', :weight => 200) 

Это не метапрограммированием. Метапрограммирование - это когда ваша программа динамически создает другие части программы. :)