Неопределенный метод для редактирования страницы

Я новичок в Rails. Мой файл new.html.erb отлично работает, как показано на http://localhost: 3000/signup . Однако я не могу заставить/редактировать работу. Я получаю эту ошибку:

undefined method `model_name' for NilClass:Class
Extracted source (around line #3):

1: 

Account Information

2: 
3: <%= form_for @user do |f| %>
4:   <% if @user.errors.any? %>
5:     <div class="error_messages">
6:       

Form is invalid


Here's my edit.html file which is a replica of the new.html that works. I tried removing the error messages code and it still just displayed another error with the page.

Account Information

<%= form_for @user do |f| %>
  <% if @user.errors.any? %>
    <div class="error_messages">
      

Form is invalid

      
    <% @user.errors.full_messages.each do |message| %>
  • <%= message %>
  • <% end %>
    </div>
  <% end %>

    <div class="field">
        <%= f.label :email %>
<%= f.text_field :email %> </div> <div class="field"> <%= f.label :password %>
<%= f.password_field :password %> </div> <div class="field"> <%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %> </div> <div class="field"> <%= f.label :username %>
<%= f.text_field :username %> </div> <div class="field"> <%= f.label :zip_code %>
<%= f.text_field :zip_code %> </div> <div class="field"> <%= f.label :birthday %>
<%= f.text_field :birthday %> </div> <div class="actions"><%= f.submit %></div> <% end %>

Here's my users_controller that I'm not sure if you need to look at or not. Maybe I have the def edit part wrong.

   class UsersController < ApplicationController
  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])
    if @user.save
      UserMailer.registration_confirmation(@user).deliver
      session[:user_id] = @user.id
      redirect_to root_url, notice: "Thank you for signing up!"
    else
      render "new"
    end

    def edit
      @user = User.find(params[:id])
  end

  def update
    @user = User.find(params[:user])
    if @user.update_attributes(params[:user])
      flash[:success] = "Account updated"
      sign_in @user
      redirect_to @user
    else
      render 'edit'
  end
end
end
end
0
nl ja de
Ваш @user равен нулю; вы передаете действительный идентификатор пользователя?
добавлено автор Dave Newton, источник
Вот что я пытаюсь понять теперь благодаря ответу Чолетта, поскольку это привело меня к той ошибке, которая теперь показывает «Не удалось найти пользователя без идентификатора». Так что теперь я просто хочу, чтобы он показывал действительный идентификатор.
добавлено автор Cornelius Wilson, источник

1 ответы

Выделение кода - это контрольный знак; вы определяете методы edit и update внутри def create ; end немедленно закрывает if @ user.save , а не def create .

1
добавлено
Спасибо. Это подтолкнет меня к новой ошибке ... но это прогресс, поскольку теперь я знаю, что мне нужно выяснить действительный идентификатор пользователя.
добавлено автор Cornelius Wilson, источник
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков

Rails Chat
Rails Chat
87 участник(ов)

You are welcome to discuss Ruby On Rails development process and other stuff