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]

これはすべて正しく機能しますが、この動的な操作を実行したいビューでは、JavaScriptによって他のコンテキスト間で選択されたコンテキストを1つの文字列でキャッチします。

mycontext = music

私の疑問は次のとおりです。

@student.mycontext_list = "rock, pop"

Student:0xb4475d4cに対して次のエラー未定義メソッド `mycontext_list='が発生するため

友達に挨拶!!!

4

3 に答える 3

1

以下のようなものを試してください:

 @student.send :"#{mycontext}_list=", "rock, pop"
于 2012-06-04T17:52:11.353 に答える
0

既に指定されていますmbleigh/acts-as-taggable-on

@student.set_tag_list_on(mycontext, "rock, pop")
于 2012-06-05T04:19:18.893 に答える
0

最も簡単な解決策は、文字列/シンボルを入力として受け入れるメソッドを定義することです

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

Javascript が渡す文字列は、適切な名前のメソッドを呼び出すために使用されます (末尾に _list が追加されます)。

于 2012-06-04T18:00:32.307 に答える