Ruby on rails Rails 4参数未发送到控制器
我一直在努力寻找一个对某人来说很快的答案 我有嵌套部分的视图。该索引对类别具有部分属性,而对子类别具有部分属性 类别按预期循环,但由于某些原因,本地人似乎没有到达控制器 我的代码如下: index.html.erbRuby 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
<%= 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)一样工作。如果它是嵌入了很多
,那么包含可能就没有必要了。