代码之家  ›  专栏  ›  技术社区  ›  Lee Eather

这是rails呈现特定于动作的css的正常行为。erb文件?

  •  0
  • Lee Eather  · 技术社区  · 7 年前

    我有一个 results.css.erb “搜索”视图文件夹中的文件。我的 searchescontroller#results 操作如下所示。

    ...
      def results
      if params[:search_form] == "User search"
        @users = User.search(params[:name], params[:gender])
        render 'user_results' and return
      elsif params[:search_form] == "Post search"
        @posts = User.search(params[:name], params[:gender])
        render 'post_results'
      end
    end
    ...
    

    有了条件,我必须命名我的css。erb文件 后果css。雇员再培训局 否则rails会给出 rendering head :no_content css文件的响应。

    但如果我这样做并添加 @users css文件的变量rails抱怨 @用户 css文件中的变量,So;

    如果我删除条件

    def results
        @users = User.search(params[:name], params[:gender])
        render 'user_results'
      end
    end
    

    Rails将投诉Actionview::MissingTemplate错误,因此我必须从 后果css。雇员再培训局 到渲染调用ie的名称 user_results.css.erb 然后一切正常。我想保留条件,但是。

    我怎样才能解决这个问题?

    我从

    <%= stylesheet_link_tag(search_results_path(format: :css), media: 'all', 'data-turbolinks-track': 'reload') %>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Imre Raudsepp    7 年前

    那么,当你请求不带参数的结果操作时,会发生什么呢? 它将尝试调用默认渲染操作名称结果。css。erb和u可能在结果中使用@users变量。css。雇员再培训局

    Ff u不想渲染默认模板u可以重定向到其他操作,或者在参数不满足但必须在控制器操作中渲染某些内容时渲染其他操作。如果你只想渲染空内容,你可以使用类似于“渲染普通”的东西: