[英]Show a partial and index in another directory
我有两个脚手架
我想在文件app/views/users/_layout_form.html.erb
显示文件app/views/userscuentas/index.html.erb
和app/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.