2012-06-04 3 views
0

в моей модели у меня есть контексты, какВыберите контекст динамически

acts_as_taggable_on :sport, :music 

в консоли я могу это сделать

@student = Student.first 
@student.sport_list = ("baseball, soccer") 
@student.save 

@student.music_list = ("rock, pop") 
@student.save 

@student.sport_list 
[baseball, soccer] 

@student.music_list 
[rock, pop] 

Все это работает правильно, но, во взглядах я хочу сделать это динамический I catch в одной строке контекст, выбранный между другими контекстами JavaScript, например:

mycontext = music 

мои сомнения: Его можно создавать динамические делать

@student.mycontext_list = "rock, pop" 

, потому что я получаю неопределенный метод следующие ошибки `mycontext_list =» для студента: 0xb4475d4c

поздравления друзей !!!

ответ

1

попробовать что-то, как показано ниже:

@student.send :"#{mycontext}_list=", "rock, pop" 
+0

Šenk вас очень много !!! 100% полезно –

0

Самое простое решение состоит в определении метода, который принимает строку/символ в качестве входного

class Student 
    def mycontext_list(string) 
    self.send("#{string}_list".to_sym) 
    end 
end 

Независимо от строки Javascript проходит затем будет использоваться для вызова соответствующий метод (с добавлением _list к его концу).

+0

senk вам очень нравится !!! Tnxs к Рон и мшакхан за помощь мне ... Надеюсь, в будущем поможет кому-нибудь LOL !!! –

+0

Если вы принимаете ответ на свою проблему, это поможет всем. – Ron