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
Ответ 5
Вы могли бы взглянуть на камень "Разработать" -
https://github.com/plataformatec/devise
Railscasts эпизод в 'Devise'
http://railscasts.com/episodes/209-introducing-devise
Отличное "Rails Tutorial" также поможет вам создать систему регистрации/проверки подлинности с нуля -
http://ruby.railstutorial.org/ruby-on-rails-tutorial-book