Ruby on rails супер простая страница регистрации - PullRequest
10 голосов
/ 03 сентября 2011

Как мне сделать страницу регистрации с ruby ​​на рельсах?

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

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

РЕДАКТИРОВАТЬ: Я хочу что-то очень простое. Мол, просто добавление строки в базу данных просто. Мне не нужны поле пароля и имя пользователя, потому что это еще больше усложняет ситуацию. Я новичок, поэтому мне нравится, когда все просто.

Ответы [ 5 ]

9 голосов
/ 03 сентября 2011

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

$ 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

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

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

5 голосов
/ 03 сентября 2011

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

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

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

def create_signup
  Signups.create! :email => params[:email]
end

Имеет ли это смысл?Теперь, когда я дал вам общее руководство, вы сможете задавать новые вопросы, которые более сфокусированы на конкретных частях, которые вы не знаете, как делать.Вам также следует выполнить поиск в Интернете, поскольку, вероятно, для всех этих шагов доступны учебные пособия.

1 голос
/ 10 мая 2012

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

Рельсы Launchpage

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

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

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

0 голосов
/ 03 сентября 2011

Вы можете взглянуть на камень 'Devise' -

https://github.com/plataformatec/devise

Эпизод Railscasts на 'Devise'

http://railscasts.com/episodes/209-introducing-devise

Отличное «Учебное пособие по Rails» также поможет вам с нуля создать систему регистрации / аутентификации -

http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

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