【发布时间】:2017-01-09 02:34:25
【问题描述】:
我创建了一个小运动应用程序,现在我无法在索引页面上仅显示当前用户的锻炼情况。
问题: WorkoutsController#index 中的 NoMethodError。 nil:NilClass 的未定义方法“锻炼”。
def index
@workouts = current_user.workouts.all
end
我将所有详细信息留在下面:
协会
-
在我的用户模型中,我有
has_many :锻炼
-
在我写的锻炼模型中
belongs_to :user
-
在我看来/workouts/index.html.erb
<% @workouts.each do |workout| %> <h4><%= link_to workout.date, workout %></h4> <h3><%= workout.workout %></h3> <% end %>
【问题讨论】:
-
您错过了在控制器中添加
before_filter :authenticate_user!吗? -
表示current_user为nil(你还没有登录)
-
关系似乎没问题。检查 current_user。尝试使用 puts current_user.inspect 进行检查。检查它给出的内容,它必须为空
-
在我的锻炼控制器中我有 -> before_action :authenticate_user!,除了:[:index, :show]
标签: ruby-on-rails ruby activerecord devise