繁体   English   中英

在另一个目录中显示部分索引

[英]Show a partial and index in another directory

我有两个脚手架

  • 使用者
  • userscuentas

我想在文件app/views/users/_layout_form.html.erb显示文件app/views/userscuentas/index.html.erbapp/views/userscuentas/new.html.erb 我在file app/views/users/_layout_users.html.erb有这种方式:

        <div class="tab-pane" id="tab4">
            <p>
                <%= render :file => "/userscuentas/index.html.erb" %>
            </p>
        </div>

通常情况下,当我们生成支架时,索引文件是默认的,然后是模型:

  • app / models / user.rb

     has_many :userscuentas, :dependent => :destroy 
  • app / models / userscuentas.rb

     belongs_to :user 

而routes.rb是这样的:

resources :users do
    resources :userscuentas
end

我收到此错误:

NoMethodError at /users/1/edit
undefined method `each' for nil:NilClass

文件控制器userscuentas_controller.rb具有以下功能:

@userscuentas = @user.userscuentas.all

我不知道该怎么办。

这是您的userscuentas控制器中的这一行

  def index
        @userscuentas = @user.userscuentas.all
    end

尝试做到

  def index
        @userscuentas = Userscuenta.all
    end

我的有根据的猜测是,您的userlayout是由未设置@userscuentas的控制器方法@userscuentas ,因此在userscuentas/index.html.erb第1行中,您在<% @userscuentas.each do |userscuenta| %>得到了NoMethodError<% @userscuentas.each do |userscuenta| %> <% @userscuentas.each do |userscuenta| %>因为它为null。

在user_controller中添加一个before_filter ,然后在过滤器的方法中设置@userscuentas


您应该学习如何在rails中进行调试
此外,该错误还会告诉您确切的行被抛出的位置。 您应该调查该信息,并在发布此类问题时将其共享。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM