在我的模型中我有像
这样的上下文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]
所有这一切都正常,但在视图中我想做这个动态 我在一个字符串中捕获了JavaScript之间在其他上下文之间选择的上下文,例如:
mycontext = music
我的疑问是:它可以做动态做法
@student.mycontext_list = "rock, pop"
因为我得到以下错误未定义方法`mycontext_list ='for Student:0xb4475d4c
问候朋友!!!
答案 0 :(得分:1)
尝试以下内容:
@student.send :"#{mycontext}_list=", "rock, pop"
答案 1 :(得分:0)
最简单的解决方案是定义一个接受字符串/符号作为输入的方法
class Student
def mycontext_list(string)
self.send("#{string}_list".to_sym)
end
end
Javascript传递的任何字符串将用于调用适当命名的方法(在其末尾附加_list)。
答案 2 :(得分:0)
已经在那里mbleigh/acts-as-taggable-on
@student.set_tag_list_on(mycontext, "rock, pop")