如何根据情况切换js文件?

时间:2012-12-30 19:39:51

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

我有3个变量,我想调用位于不同视图中的不同js文件。

  • if @community =>我想打电话给/views/communities/refresh.js.erb
  • 如果@community_topic =>我想打电话给/views/community_topics/refresh.js.erb
  • if @user =>我想打电话给/views/users/refresh.js.erb

我如何将其编入此代码?

    respond_to do |format|
        format.html { redirect_to @community, :notice => "comment added!"  }
        format.js { }
    end 

1 个答案:

答案 0 :(得分:1)

我们假设您只想呈现视图。

respond_to do |format|
  format.html { redirect_to @community, :notice => "comment added!"  }
  format.js do
    if @community.present?
      render 'communities/refresh' 
    elsif @community_topic.present?
      render 'community_topics/refresh'
    elsif @user.present?
      render 'users/refresh'
    end
  end
end

但总而言之,我认为你的控制器正在打破一些基本的REST规则,不是吗?因此,我认为您应该首先重新考虑控制器的结构,以便您有三个方法,每个方法负责其中一个对象@community@community_topic或{{1 }})。