2011-09-02 59 views
10

我如何能够在rails上使用ruby创建注册页面?Ruby on rails超级简单注册页面

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

而且,我可以向他们发送一封电子邮件,确认自己的注册

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

回答

5

这是什么样的事情,这是非常容易的Rails做,你不应该需要任何额外的宝石。以下是您需要执行的步骤:

  • 使用迁移创建名为“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

这个问题太宽泛与代码本身来回答,但这里有一些伟大的链接指向你在正确的方向:

设计(最常见的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

能想出真正的海报想要什么?这似乎是矫枉过正;他只是想将电子邮件地址添加到数据库中。他不需要密码,所以他似乎必须做各种各样的黑客才能设法按照自己的意愿行事。我错了吗? –

+0

我在发布(预编辑)时错过了一些信息。你也许是对的。还是一个相当广泛的问题。 – tybro0103

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

我为此做了一个应用程序。 Launchrock提供了一个很好的解决方案,但是如果你有两种类型的用户,那么你就会被洗净。我们未来的网站将有多种类型的用户,我们希望记录他们的类型。所以我们制作了一个应用程序,它在Github上供全世界使用和更改。 :D叉和克隆回购使它成为你自己的。我还包含社交插件。它没有风格,你将不得不改变一些东西来适应你的需求,但我试图记下README.rd中的那些东西。

Launchpage-rails