2009-08-16 2 views
0

Я хочу, чтобы люди, использующие мою программу, создавали то, что составляет несколько условий, которые они будут выбирать из выпадающих списков.Возможно ли это в Ruby?

First drop down : object 
Second drop down : attribute 
Third drop down : sign 
Fourth drop down : amount 

Таким образом, выбор пользователя может выглядеть примерно так;

person_a 
age 
> 
18 

Можно ли наращивать if состояние в строку, а затем выполнить его?

ответ

1

Возможно, вы захотите взглянуть на метод Ruby's eval. Он позволяет вам оценивать выражение Ruby, хранящееся в строке, поэтому вы можете создать оператор if из своих меню и оценить его с помощью eval.

eval может быть опасным, особенно при работе с пользователем, но если вы будете осторожны, это один из способов, который вы могли бы использовать.

+0

Я сделал это в C# (несмотря на то, что это не динамический язык). –

+1

Будьте очень осторожны с 'eval'. Это похоже на незнакомец ваших домашних ключей и адрес – edgerunner

10

Предполагая, что у вас есть метод find_person, который принимает имя человека и возвращает объект человека, вы можете сделать

find_person(person_name).send(attribute).send(sign, amount) 
+4

Это намного лучший/более рубиновый путь, чем уклонение от строки. У нас есть богатая система объектов и передача сообщений по какой-то причине. –

+2

Без обид, предназначенных для мипади, но это решение намного лучше. – Chuck

Смежные вопросы