Использование Rails 3.0 beta 3 без ActiveRecord ORM - PullRequest
1 голос
/ 14 июня 2010

Только что установил Rails 3.0 beta 3 в Windows 7. И начал играть с несколькими простыми примерами

   class SignupController < ApplicationController
     def index
       @user = User.new(params[:user])
       if method.post? and @user.save
         redirect_to :root
       end
     end
   end

    class User
      def initialize(params = {})
        @email = params[:email]
        @passw = params[:password]
      end

      def save
      end
    end

<div align="center">
 <% form_for :user do |form| %>
  <%= form.label :email %>
  <%= form.text_field :email %><br />
  <%= form.label :password %>
  <%= form.text_field :password %><br />
  <%= form.submit :Register! %>
 <% end %>
</div>

Когда я захожу в / зарегистрироваться, я получаю эту ошибку

NoMethodError in SignupController # индекс

У вас есть нулевой объект, когда вы этого не сделали ожидайте этого! Вы могли ожидать экземпляр массива. Произошла ошибка при оценке ноль. []

Есть проблема с конструктором или что-то не так? Пожалуйста, нужна ваша помощь! Я просто не буду использовать ActiveRecord или любую другую ORM.

1 Ответ

0 голосов
/ 14 июня 2010

Вам нужно другое действие для обработки сообщения, возможно, оно называется create.Вот как я бы пересмотрел ваш контроллер:

def index
  @user = User.new
end

def create
  @user = User.new(params[:user])
  if method.post? and @user.save
    redirect_to :root
  end
end

Возможно, ошибка, потому что при отображении index переменная params не имеет содержимого.

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