Ruby on rails超简单的注册页面

时间:2011-09-02 20:27:01

标签: ruby-on-rails

如何在轨道上制作带红宝石的注册页面?

就像,我有一个测试版页面,用户输入他们的电子邮件地址,然后我就可以将其添加到数据库中。

另外,我可以向他们发送确认他们注册的电子邮件

编辑:我想要一些非常简单的东西。就像,只是在数据库中简单地添加一行简单。我不需要密码框和用户名框,因为这更加复杂了。我是初学者所以我喜欢简单的事情。

5 个答案:

答案 0 :(得分:9)

在终端:

$ 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或其他延迟/异步处理工具。

答案 1 :(得分:5)

这是在Rails中很容易做到的事情,你不需要任何额外的宝石。以下是您需要执行的步骤:

  • 使用迁移创建一个名为Signup的模型(即数据库表),其中包含一个名为“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

这有意义吗?现在我已经给了你一般指南,你应该能够提出更多关注你不知道该怎么做的特定部分的新问题。您还应该在网上搜索,因为可能有适用于所有这些步骤的教程。

答案 2 :(得分:1)

这个问题太宽泛了,无法回答代码本身,但是这里有一些很棒的链接指向正确的方向:

Devise(最常见的Rails auth&amp;注册插件):
https://github.com/plataformatec/devise
设计教程:
http://railscasts.com/episodes/209-introducing-devise
梅勒教程:
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

答案 3 :(得分:1)

我为此制作了一个应用程序。 Launchrock提供了一个很好的解决方案,但是如果你有两种类型的用户,那么你就会受到冲击。我们未来的网站将有多种类型的用户,我们想记录他们的类型。所以我们制作了一个应用程序,它在Github上供全世界使用和改变。 :D Fork并克隆回购以使其成为您自己的回购。我也包括了社交插件。它没有风格,你必须改变一些东西以满足你的需求,但我试着记下README.rd中的那些。

Launchpage-rails

答案 4 :(得分:0)

你可以看一下'Devise'宝石 -

https://github.com/plataformatec/devise

关于'Devise'的Railscasts剧集

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

优秀的“Rails教程”还将引导您从头开始构建注册/身份验证系统 -

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