1

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

  • 如果@community => 我想调用 /views/communities/refresh.js.erb
  • 如果@community_topic => 我想调用 /views/community_topics/refresh.js.erb
  • 如果@user => 我想调用 /views/users/refresh.js.erb

我怎样才能把它编码成这个?

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

1 回答 1

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@user)。

于 2012-12-30T19:55:29.467 回答