Ruby on rails 未定义的方法'fetch#u value';无:无类别外观设计注册

Ruby on rails 未定义的方法'fetch#u value';无:无类别外观设计注册,ruby-on-rails,forms,devise,registration,Ruby On Rails,Forms,Devise,Registration,我一直使用Desive进行身份验证。它很简单,而且可以定制。今天我开始在无缘无故注册新用户时出错。没有捆绑更新或什么都没有。没有从控制器或配置文件中意外删除某些内容。非常困惑。我在谷歌上搜索了这个常见错误,还没有找到解决办法。我尝试过不同版本的rails、Desive等,但似乎没有任何东西能解决它。重置我的数据库了。没有主意了。还有其他人有同样的问题吗?即将切换到不同的身份验证gem或只是从头开始构建,这在a中是一种痛苦,但我不知道还能做什么。现在是2019年,rails已经存在了一段时间,这不

我一直使用Desive进行身份验证。它很简单,而且可以定制。今天我开始在无缘无故注册新用户时出错。没有捆绑更新或什么都没有。没有从控制器或配置文件中意外删除某些内容。非常困惑。我在谷歌上搜索了这个常见错误,还没有找到解决办法。我尝试过不同版本的rails、Desive等,但似乎没有任何东西能解决它。重置我的数据库了。没有主意了。还有其他人有同样的问题吗?即将切换到不同的身份验证gem或只是从头开始构建,这在a中是一种痛苦,但我不知道还能做什么。现在是2019年,rails已经存在了一段时间,这不应该成为一个问题。你可以看出我很沮丧,哈哈

new_reviewer.html.erb

今天就报名吧!






(最少字符)

#用户\u controller.rb

class UsersController < ApplicationController


  def new_author
    @user = User.new
  end

  def new_reviewer
    @user = User.new
  end

  def show
    @user = User.find(params[:id])
    @user.books.each do |b|
    @avg_rating = if b.reviews.blank?
    0
    else
      b.reviews.average(:rating).round(2)
    end
  end
  end


  def profile
    @current_user = current_user
    @helpful = current_user.reviews.where(helpful: true)
    @unhelpful = current_user.reviews.where(unhelpful: true)
    @reviews = current_user.reviews
    unhelpful = @unhelpful.count
    total = @reviews.count
    subtotal = total - unhelpful
    @score = subtotal.to_f / total

  end

  def reviewer
    if params[:search]
      @reviewers_search = User.search(params[:search]).paginate(:page => params[:page], :per_page => 2)
    else
      @reviewers_search = User.where(access_level: :reviewer).order('first_name ASC').paginate(:page => params[:page], :per_page => 2)
    end
  end

  def author
      if params[:search]
        @authors_search = User.search(params[:search]).paginate(:page => params[:page], :per_page => 2)
        @author_rank = b.reviews.count 
      else
        @authors_search = User.where(access_level: :author).order('first_name ASC').paginate(:page => params[:page], :per_page => 2)
    end
  end

  def edit
  end

  def update
    @user = User.find(params[:id])
    if @user.update(user_params)
      redirect_to @user
    end
  end

  def destroy
    user = User.find(params[:id])
    user.destroy
    redirect_to root_path
  end


  private

  def user_params
    params.require(:user).permit(:bio, :ranking, :first_name, :last_name, :email, :password, :avatar, :access_level)
  end
end
class UsersControllerparams[:page],:per_page=>2)
其他的
@reviewers\u search=User.where(访问级别::reviewer).order('first\u name ASC').paginate(:page=>params[:page],:per\u page=>2)
结束
结束
def作者
如果参数[:搜索]
@authors_search=User.search(params[:search]).paginate(:page=>params[:page],:per_page=>2)
@作者排名=b.reviews.count
其他的
@authors\u search=User.where(访问级别::author).order('first\u name ASC').paginate(:page=>params[:page],:per\u page=>2)
结束
结束
定义编辑
结束
def更新
@user=user.find(参数[:id])
如果@user.update(用户参数)
将_重定向到@user
结束
结束
def销毁
user=user.find(参数[:id])
用户破坏
将\重定向到根\路径
结束
私有的
def用户参数
参数require(:user).permit(:bio,:ranking,:first_name,:last_name,:email,:password,:avatar,:access_level)
结束
结束
以下是来自终端的堆栈跟踪:
ActionView::Template::Error(未定义nil:NilClass的'fetch_value'方法):
1: 
2: 
三:
4:今天就报名吧!
5: 
app/views/users/new\u reviewer.html.erb:2:在“app\u views\u users\u new\u reviewer\u html\u erb\u 2780381832095941109\u 4740298557320”中

在我的user.rb文件中,我初始化了一个不再需要执行的对象,它导致了错误。摆脱了初始化器和爆炸。重操旧业。吸取的教训

def initialize(array)
  @array = array
end

def count_increases
  @array = self.reviews.size
  if @array += 1
    self.increment!(:ranking, 2)
  end
end

你为什么不发布最重要的部分-跟踪的全部错误?我道歉。我很快会修改这个问题。当我感到压力过大时,我问了这个问题,因为我的银行账户被泄露了,我的德国车可能需要再次修理。希望它能给我们一些启示。我知道其他人在stackoverflow上也问过同样的问题,我只是没能从回答中获益。也许你在初始化的末尾加了“super”。也许这个类有一个父类,它有自己的initialize并使用了一些参数。您确实重写了父级初始化,但没有提供相同的参数。有时jsut“super”还不够,如果父级使用,则需要传递额外的*参数和&block参数。您是对的。它有一个父类。类用户。你所说的一切很可能都是正确的。你的知识非常先进。在我的rails/ruby知识方面,我仍然是一个新手和青少年,但在我的开发经验中,我终于“达到了目标”。谢谢你的意见!
ActionView::Template::Error (undefined method `fetch_value' for nil:NilClass):
    1: 
    2: <%= form_for(@user, url: registration_path(@user)) do |f| %>
    3: <div class="registration-container">
    4:   <h2>Sign up today!</h2>
    5: 
  
app/views/users/new_reviewer.html.erb:2:in `_app_views_users_new_reviewer_html_erb__2780381832095941109_47402928557320'
def initialize(array)
  @array = array
end

def count_increases
  @array = self.reviews.size
  if @array += 1
    self.increment!(:ranking, 2)
  end
end