Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4参数未发送到控制器_Ruby On Rails_Params - Fatal编程技术网

Ruby on rails Rails 4参数未发送到控制器

Ruby on rails Rails 4参数未发送到控制器,ruby-on-rails,params,Ruby On Rails,Params,我一直在努力寻找一个对某人来说很快的答案 我有嵌套部分的视图。该索引对类别具有部分属性,而对子类别具有部分属性 类别按预期循环,但由于某些原因,本地人似乎没有到达控制器 我的代码如下: index.html.erb <%= render partial: "categories/categories", object: @categories %> <% @categories.each do |category| %> <% if cat

我一直在努力寻找一个对某人来说很快的答案

我有嵌套部分的视图。该索引对类别具有部分属性,而对子类别具有部分属性

类别按预期循环,但由于某些原因,本地人似乎没有到达控制器

我的代码如下:

index.html.erb

<%= render partial: "categories/categories", object: @categories %>
    <% @categories.each do |category| %>
        <% if category.category_parent == 0 %>
            <li><a href=""><%= category.category_name %> <i class="icons icon-right-dir"></i></a>
                <%= render partial: "categories/subcategories", object: @subcategories, locals: {parent_id: category.category_id} %>
            </li>
        <% end %>
    <% end %>
      <% if @parent != nil %>
      <ul class="sidebar-dropdown">
        <li>
          <ul>
            <% @subcategories.each do |subcategory| %>
              <li><a href=""><%= subcategory.category_name %> <i class="icons icon-right-dir"></i></a></li>
            <% end %>
          </ul>
        </li>
      </ul>
      <% end %>
class CategoriesController < ApplicationController
  before_action :categories, :subcategories

  def categories
    @categories = Category.all
  end

  def subcategories
    @parent = params[:parent_id]
    @subcategories = Category.where(:category_parent => params[:parent_id])
  end

end
def categories
  @categories = Category.all.includes(:subcategories)
end

\u categories.html.erb

<%= render partial: "categories/categories", object: @categories %>
    <% @categories.each do |category| %>
        <% if category.category_parent == 0 %>
            <li><a href=""><%= category.category_name %> <i class="icons icon-right-dir"></i></a>
                <%= render partial: "categories/subcategories", object: @subcategories, locals: {parent_id: category.category_id} %>
            </li>
        <% end %>
    <% end %>
      <% if @parent != nil %>
      <ul class="sidebar-dropdown">
        <li>
          <ul>
            <% @subcategories.each do |subcategory| %>
              <li><a href=""><%= subcategory.category_name %> <i class="icons icon-right-dir"></i></a></li>
            <% end %>
          </ul>
        </li>
      </ul>
      <% end %>
class CategoriesController < ApplicationController
  before_action :categories, :subcategories

  def categories
    @categories = Category.all
  end

  def subcategories
    @parent = params[:parent_id]
    @subcategories = Category.where(:category_parent => params[:parent_id])
  end

end
def categories
  @categories = Category.all.includes(:subcategories)
end

  • \u subcategories.html.erb

    <%= render partial: "categories/categories", object: @categories %>
    
        <% @categories.each do |category| %>
            <% if category.category_parent == 0 %>
                <li><a href=""><%= category.category_name %> <i class="icons icon-right-dir"></i></a>
                    <%= render partial: "categories/subcategories", object: @subcategories, locals: {parent_id: category.category_id} %>
                </li>
            <% end %>
        <% end %>
    
          <% if @parent != nil %>
          <ul class="sidebar-dropdown">
            <li>
              <ul>
                <% @subcategories.each do |subcategory| %>
                  <li><a href=""><%= subcategory.category_name %> <i class="icons icon-right-dir"></i></a></li>
                <% end %>
              </ul>
            </li>
          </ul>
          <% end %>
    
    class CategoriesController < ApplicationController
      before_action :categories, :subcategories
    
      def categories
        @categories = Category.all
      end
    
      def subcategories
        @parent = params[:parent_id]
        @subcategories = Category.where(:category_parent => params[:parent_id])
      end
    
    end
    
    def categories
      @categories = Category.all.includes(:subcategories)
    end
    
    
    
    categories\u controller.rb

    <%= render partial: "categories/categories", object: @categories %>
    
        <% @categories.each do |category| %>
            <% if category.category_parent == 0 %>
                <li><a href=""><%= category.category_name %> <i class="icons icon-right-dir"></i></a>
                    <%= render partial: "categories/subcategories", object: @subcategories, locals: {parent_id: category.category_id} %>
                </li>
            <% end %>
        <% end %>
    
          <% if @parent != nil %>
          <ul class="sidebar-dropdown">
            <li>
              <ul>
                <% @subcategories.each do |subcategory| %>
                  <li><a href=""><%= subcategory.category_name %> <i class="icons icon-right-dir"></i></a></li>
                <% end %>
              </ul>
            </li>
          </ul>
          <% end %>
    
    class CategoriesController < ApplicationController
      before_action :categories, :subcategories
    
      def categories
        @categories = Category.all
      end
    
      def subcategories
        @parent = params[:parent_id]
        @subcategories = Category.where(:category_parent => params[:parent_id])
      end
    
    end
    
    def categories
      @categories = Category.all.includes(:subcategories)
    end
    
    class CategoriesControllerparams[:parent\u id])
    终止
    终止
    
    @categories
    是一个实例变量,您不需要在视图之间传递它。因此,第一个渲染状态变为:

    <%= render "categories/categories" %>
    
    \u subcategories.html.erb

    <% if category != nil %>
      <ul class="sidebar-dropdown">
        <li>
          <ul>
            <% category.subcategories.each do |subcategory| %>
              <li><a href=""><%= subcategory.category_name %> <i class="icons icon-right-dir"></i></a></li>
            <% end %>
          </ul>
        </li>
      </ul>
    <% end %>
    

    这是我认为最简单和最清楚的。但是我也没有玩太多的
    对象:
    。如果你想坚持这种模式,这可能会对你有所帮助:

    谢谢你的快速回答和帖子的链接。我在@categories=Category.all.includes(:subcategories)附近发现一个mongoid错误。上面写着“无效包含指令”哦!蒙哥德。是的,
    .all
    现在在ActiveRecord中的工作方式有所不同,在Mongoid中可能不是这样。您应该能够只执行以下操作:
    Category.includes(:subcategories)
    它表示以下内容:问题:无效的includes指令:Category.includes(:subcategories)摘要:Mongoid中的即时加载仅支持向Category.includes提供参数,这些参数是类别模型中关系的名称,并且只支持一个级别的即时加载。(即,不允许通过另一个关系一步一步地加载不在类别上的关联。解决方案:确保传递给Category.includes的每个参数都是类别模型上关系的有效名称。这些参数是:。首先,在不使用includes的情况下尝试,以确保其工作。includes只是为了提高性能。假设它能工作,类别和子类别之间的关系是什么?如果它是
    有很多
    ,那么我认为它应该像ActiveRecord(我更熟悉的是ActiveRecord)一样工作。如果它是
    嵌入了很多
    ,那么包含可能就没有必要了。