Получение ошибки NoMethodError - PullRequest
0 голосов
/ 05 апреля 2011

Я получаю эту ошибку:

Отображение /Users/nelsonkeating/Desktop/imright/app/views/users/new.html.erb где поднялась строка # 4:

неопределенный метод `имя_модели 'для NilClass: Class Извлеченный источник (вокруг строки # 4):

4: <%= form_for(@user) do |f| %>

5:   <div class="field">
6:     <%= f.label :name %><br />
7:     <%= f.text_field :name %>

что я могу изменить, чтобы исправить это?

Ответы [ 3 ]

2 голосов
/ 05 апреля 2011

@user тогда не существует (посмотрите на ошибку, потому что она говорит, что это NilClass).

Вы либо хотите сделать:

form_for(User.new) do |f|

или установите @user в контроллере;

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

Я предлагаю последнее, потому что MVC придерживается практического правила не включать вызовы моделей в ваши представления.

1 голос
/ 14 сентября 2011

попробуйте просмотреть страницу <% = form_for @user,: url => {: action => "create"} do | f |%> в контроллере def new @user = User.new end

def create
  @user = User.new(params[:user])

           if @user.save
        flash[:notice] = "Registration successful."
           redirect_to(:controller =>"user_sessions", :action =>"new")
     else
            render :action => 'new'
     end

end
0 голосов
/ 05 апреля 2011

Это означает, что @user - ноль.Возможно, вы изменили имя переменной с @user на другое в вашем контроллере и забыли изменить его по вашему мнению?Может быть, это представление отображается в действии create или update после ошибки, и переменная в этих действиях называется чем-то, кроме @user?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...