使用respond_to时如何发送两个变量

时间:2013-10-21 13:11:19

标签: ruby-on-rails ruby-on-rails-3

我有一些使用以下操作的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语法的良好解释。

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分:1)

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

只提及format.js就是它