首页 > 解决方案 > 当我使用设计助手 current_user 时出现参数错误

问题描述

我添加before_action :authenticate_user!但它不起作用

回购:https ://github.com/d1mentor/robostep

错误截图: 错误

我的控制器:

class UsersController < ApplicationController
  # Встроенный в девайз фильтр — посылает незалогиненного пользователя
  before_action :authenticate_user!

  # Задаем объект @user для шаблонов и экшенов
  before_action :set_current_user

  helper_method :user_avatar

  def user_avatar(user)
    if user.avatar_url.empty? then
      avatar_url = "https://i.guim.co.uk/img/media/26392d05302e02f7bf4eb143bb84c8097d09144b/446_167_3683_2210/master/3683.jpg?width=1200&height=1200&quality=85&auto=format&fit=crop&s=49ed3252c0b2ffb49cf8b508892e452d"
    else
      avatar_url = user.avatar_url
    end
  end

  def index

  end

  def set_current_user
    @user = current_user
  end
end

我的观点:

<div class="container text-center">
 <div class="row">

    <h2>Моя страница</h2>

    <%= image_tag(user_avatar) %>

</div>
</div>

标签: ruby-on-railsdevise

解决方案


屏幕截图中的错误与设计助手 current_user 无关。这是关于user_avatar助手的。

在您看来,您正在使用 0 个参数调用该方法:

<%= image_tag(user_avatar) %>

但是该方法是用 1 个参数定义的:

  def user_avatar(user)

因此,屏幕截图中的参数数量错误。


推荐阅读