Ruby on rails супер простая страница регистрации

Как я могу сделать страницу регистрации с рубином на рельсах?

Например, у меня есть бета-страница, и пользователь вводит свой адрес электронной почты, а затем я могу добавить ее в базу данных.

Кроме того, я мог бы отправить им письмо, подтверждающее их регистрацию

EDIT: Мне нужно что-то очень простое. Например, просто добавление строки в базу данных простое. Мне не нужен пароль и поле имени пользователя, потому что это еще больше усложняет ситуацию. Я новичок, поэтому мне нравится, что все просто.

Ответ 1

Это то, что очень легко сделать в Rails, и вам не нужны никакие дополнительные драгоценные камни. Вот шаги, которые вам нужно выполнить:

  • Используйте миграцию для создания модели (т.е. таблицы базы данных) под названием "Регистрация" с строковым полем "электронная почта".
  • Создайте действие, которое можно вызвать с помощью запроса "GET". Это действие вернет форму регистрации.
  • Создайте представление, которое служит формой регистрации. Он должен иметь элемент HTML-формы (<form method="POST">...</form>), который содержит текстовое поле (<input type="text" .../>) в нем и кнопку отправки (<input type="submit" />). Rails имеет всевозможные вспомогательные методы, которые помогут вам создавать теги HTML, но вам не нужно их использовать, если вы этого не хотите.
  • Создайте действие, которое можно вызвать с помощью запроса "POST", который обрабатывает форму и добавляет информацию в базу данных.

Действие может быть очень простым:

def create_signup
  Signups.create! :email => params[:email]
end
Это имеет смысл? Теперь, когда я дал вам общее руководство, вы должны иметь возможность задавать новые вопросы, которые более сосредоточены на конкретных деталях, которые вы не знаете, как это сделать. Вы также должны искать в Интернете, потому что есть, вероятно, учебные пособия для всех этих шагов.

Ответ 2

На терминале:

$ rails new foobar
$ rm public/index.html
$ git init
$ git commit -m "Initial commit"
$ rails g scaffold subscription email:string

Откройте редактор:

# app/models/subscription.rb
class Subscription < ActiveRecord::Base
  validates :email, :presence => true # optionally validate format of email
end

# app/controllers/subscriptions_controller.rb
class SubscriptionsController < ApplicationController
  def new
    @subscription = Subscription.new
  end

  def create
    @subscription = Subscription.new params[:subscription]
    if @subscription.save
      # queue a task to send a confirmation email (see below)
      Resque.enqueue(SendConfirmationEmail, @subscription.email)
      redirect_to root_path, :notice => 'Thanks for signing up.'
    else
      render :new
    end
  end
end

Вы можете удалить все другие методы/действия из вашего SubscriptionsController, и вы можете очистить routes.rb, ограничив действия, доступные на ресурсе subscriptions, с помощью resources :subscriptions, :only => [:new, :create].

Это не распространяется на то, как отправить электронное письмо. Существует много способов сделать это, и наилучшей практикой является не отправлять ее в поток запросов/ответов для повышения производительности/реагирования. У меня есть очередь в очереди на выполнение задания Resque, но вы можете легко добавить DelayedJob или другой инструмент отложенного/асинхронного процесса там.

Ответ 3

Этот вопрос слишком широк, чтобы отвечать на сам код, но вот несколько отличных ссылок, чтобы указать вам в правильном направлении:

Придумайте (наиболее распространенный Rails-сервер авторизации и подписки):
https://github.com/plataformatec/devise
Учебник для разработчиков:
http://railscasts.com/episodes/209-introducing-devise
Учебник Mailer:
http://railscasts.com/episodes/206-action-mailer-in-rails-3
Другие учебники Auth:
http://railscasts.com/episodes/250-authentication-from-scratch
http://railscasts.com/episodes/270-authentication-in-rails-3-1

Ответ 4

Я сделал приложение для этого. Launchrock предлагает хорошее решение, но если у вас есть два типа пользователей, тогда вас ждут. Наш будущий сайт будет иметь несколько типов пользователей, и мы хотели бы записать, какой тип они были. Таким образом, мы создали приложение и его на Github для использования и изменения мира.: D Вилка и клонирование репо, чтобы сделать его своим. Я включил и социальный плагин. Это не стилизовано, и вам придется изменить несколько вещей в соответствии с вашими потребностями, но я попытался обратить внимание на тех, кто находится в README.rd.

Launchpage-rails