【问题标题】:Is it possible to specify what js.erb file I want to run?是否可以指定我要运行的 js.erb 文件?
【发布时间】:2017-04-28 01:22:54
【问题描述】:

如果我有以下代码,Rails 会设置为自动查看 views 文件夹并找到 photos/feed.js.erb。但我想做的是告诉它运行users/feed.js.erb

PhotosController
def feed
    @title = "Favorites" 
    @user_feed_items = current_user.favorites.order('created_at desc').paginate(page: params[:page], per_page: 15)
      respond_to do |format|
        format.html { 
               render 'users/feed' }
        format.js 
      end 
  end  

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    Rails: Render a .js.erb from another controller?

    format.js { render :file => "/users/feed.js.erb"}
    

    【讨论】:

    • 你可能想要添加 layout: false 到那个: format.js { render file: "/users/feed.js.erb", layout: false}
    【解决方案2】:

    render 接受要呈现的模板的完整路径(相对于应用程序/视图)。所以,你可以直接输入users/feed

    render "users/feed"
    

    Rails 知道这个视图属于不同的控制器,因为字符串中嵌入了斜杠字符。如果你想明确一点,可以使用 :template 选项。

    render template: "users/feed"
    

    http://guides.rubyonrails.org/layouts_and_rendering.html#using-render

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      相关资源
      最近更新 更多