在另一个目录中显示部分和索引
我有两个脚手架
- 用户
- userscuentas
我想在文件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
这样做了:
"/userscuentas/index.html.erb" %>
通常我们生成脚手架时,索引文件是默认的,那么这种方式是模型:
-
应用程序/模型/ user.rb
has_many :userscuentas, :dependent => :destroy
-
应用程序/模型/ 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行你会得到一个NoMethodError
<% @userscuentas.each do |userscuenta| %>
<% @userscuentas.each do |userscuenta| %>
因为它为null。
将before_filter
添加到user_controller,并在filter的方法集中添加@userscuentas
。
您应该学习如何在rails中进行调试 。
此外,错误将告诉您抛出它的确切行。 您应该查看这些信息,并在发布此类问题时分享。