jRuby / Rails как сравнить одно значение Hash с другим - PullRequest
0 голосов
/ 12 декабря 2011

То, что у меня есть, - это 2 хэша, которые сбрасываются с бэкэнда, который не имеет ничего общего с рельсами. Другой - хеш-код, созданный вручную. Вроде как индекс известных возможностей.

То, что я хочу сделать, это сравнить то, что подсвечивает бэкэнд, с тем, что у меня есть в моем хэше, например индексом, поэтому при рендеринге моего представления экран может выглядеть более привлекательным.

Теперь я могу сделать что-то подобное с php и массивом

array("monkey" => "Monkey", "server" => "server")
and then do a str_replace("monkey", $var, array)

хорошо, это плохой пример, но прошло уже много времени с тех пор, как я играл с php, и я немного устал от макушки головы. Но это понятие

конечный результат - когда я нахожу "обезьяну" в одной, я хочу заменить ее на "обезьяну" ради представления.

редактировать / версия / дополнение

Хорошо, я понял, что я не работаю с хешем, я на самом деле работаю с массивом или объектом JSON.

pretty_service = {"namenode" => "Name Nodes","secondarynamenode" => " Secondary Name Nodes", "datanode" => "Data Nodes", "web" => "Web", "tasktracker" => "Task Trackers", "jobtracker" => "Job Trackers", "oozie" => "Oozie", "single-namenode" => "Single NameNode", "single-databse" => "Single Database" }

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

Ответы [ 3 ]

2 голосов
/ 12 декабря 2011

String.gsub может сделать это.

table = {"monkey"=>"Monkey", "teh"=>"the"}
str = "Don't feed teh monkey"
p str.gsub(Regexp.union(table.keys), table)
#=> "Don't feed the Monkey"
0 голосов
/ 12 декабря 2011
find = {:a => 'a', :b => 'b', :c => 'c'}
replace = {:a => 'A', :b => 'B'}
replace.merge(find) # {:a => 'A', :b => 'B', :c => 'c'}
0 голосов
/ 12 декабря 2011

Вот пример использования хеш-функций.Вы можете адаптировать это к вашим потребностям:

if my_hash.keys.include?("monkey")
   what_i_will_render.gsub!("monkey",my_hash["monkey"])
end
...