0

我有一些使用以下操作的 ajax。

  def game_type
    if params[:game_type] == "team"
      @game_for = "Team"
      @match_partial = "team_match_fields.html.erb"
    else
      @game_for = "Player"
      @match_partial = "player_match_fields.html.erb"
    end  

    respond_to do |format|
        format.js { @game_for }
    end
  end 

如果我在块中只使用一个变量respond_to,一切都很好,但我希望能够同时传递@game_for和传递@match_partial给我的 js 文件。我怎样才能做到这一点?我还没有找到一个很好的使用语法的解释respond_to

4

2 回答 2

3

默认情况下,模板中的所有实例变量都可用。无需明确传递。

仅使用以下代码,您应该能够在您的 js 模板@game_for中访问两者。@match_partial

def game_type
    if params[:game_type] == "team"
      @game_for = "Team"
      @match_partial = "team_match_fields.html.erb"
    else
      @game_for = "Player"
      @match_partial = "player_match_fields.html.erb"
    end  

    respond_to do |format|
        format.js
    end
  end 
于 2013-10-21T13:24:04.383 回答
1

您不必将任何变量传递给您的 format.js 块。无论满足哪个条件,这些特定变量都已设置并可在您的 .js.erb 文件中访问

format.js就这么说吧

于 2013-10-21T13:18:15.177 回答