当前位置: 首页 > 知识库问答 >
问题:

设计:我不能只显示当前用户的训练

柴声
2023-03-14

我创建了小运动应用程序,现在我在索引页面上仅显示当前用户锻炼有问题。

问题:WorkoutsController#index中的NoMachodError。nil: NilClass的未定义方法“锻炼”。

def index
    @workouts = current_user.workouts.all
end

我在下面留下所有细节:

协会

>

有很多:锻炼

在我的锻炼模型中,我写道

belongs_to:用户

在我的视图/训练/索引中。html。erb公司

<% @workouts.each do |workout| %>
    <h4><%= link_to workout.date, workout %></h4>
    <h3><%= workout.workout %></h3>
<% end %>

共有2个答案

裘臻
2023-03-14

试试这个:

def index
    @workouts = current_user.present? ? current_user.workouts : []
end

我认为没有登录时出错,current_user返回nil

周博达
2023-03-14

如果您想获得当前_用户的训练列表,则应定义当前_用户。这意味着你需要登录。您可以使用before filter轻松检查

before_filter :authenticate_user!

在你使用你的代码之后

@workouts = current_user.workouts.all

如果你想显示其他用户的训练,可以跳过筛选以进行新操作

class TestController < ApplicationController

  before_filter :authenticate_user!, except: [:another_index]

  def another_index
    @workouts = User.find(params[:id]).workouts.all
  end

end
 类似资料:
  • 我想用纯CSS设计上面的图像。 下面是我到目前为止想出的HTML和CSS: 下面是我的SCSS: 以下是我现在的结果: 我正在努力实现,像我悬停个人资料图片时,图像将覆盖黑色,并出现相机图标。我怎么能那样做?

  • 我试图将我当前用户的用户名添加到我的URL(route)中,但是我不断地得到错误。我已经尝试了很多下面提到的方法,但是没有一个有效。以下是我的代码: Layout.html: 当我尝试转到另一个页面时,我收到错误,当我转到设置时收到404。 jinja2.exceptions.UndefinedError jinja2.exceptions.UndefinedError:'user'未定义 MOD

  • 我已经使用PagedList为一个mvc项目创建了分页,在一个新的需求出现之前一切正常: null 任何建议都将不胜感激。

  • 我目前正在开发一个应用程序使用Android Studio与静态编程语言。 此应用程序有一个BottomNavigationView和4个片段。 我的问题是如何使用BottomNavigationView仅显示片段区域? 代码如下: fragment.xml activity_main.xml Android Studio: 3.3.2

  • 如果我手动安装我自己的应用程序,它在我的设备上运行良好。以及我的Nexus 7 (2012) (Android 5.1.1)上。但当我试图从Google Play安装它时,它说我的设备不受支持。我检查了AndroidManifest.xml,通过aapt转储标记查看了apk,添加到清单文件中,但没有任何帮助。我不知道为什么Google Play认为我的应用程序不受支持。 在我的其他设备上,我的应用

  • 喂! 我一直在做一个web项目,用户可以注册和登录。我也想添加一个配置文件,他们提供的一些信息可以在“配置文件”页面上显示。 我已经使用firebase auth(与电子邮件和密码)和rt数据库存储额外的信息,如‘姓名','生物’等。 我已经尝试过这里其他问题的解决方案,但似乎没有一个对我有效。 下面是我的数据库的外观: 下面是配置文件页面的一些代码: 当我测试代码时,我在控制台上得到了这个错误: