如何在轨道上制作带红宝石的注册页面?
就像,我有一个测试版页面,用户输入他们的电子邮件地址,然后我就可以将其添加到数据库中。
另外,我可以向他们发送确认他们注册的电子邮件
编辑:我想要一些非常简单的东西。就像,只是在数据库中简单地添加一行简单。我不需要密码框和用户名框,因为这更加复杂了。我是初学者所以我喜欢简单的事情。答案 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中很容易做到的事情,你不需要任何额外的宝石。以下是您需要执行的步骤:
<form method="POST">...</form>
),其中包含一个文本框(<input type="text" .../>
)和一个提交按钮(<input type="submit" />
)。 Rails有各种帮助方法可以帮助你制作这些HTML标签,但如果你不想这样做,就不必使用它们。行动非常简单:
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中的那些。
答案 4 :(得分:0)
你可以看一下'Devise'宝石 -
https://github.com/plataformatec/devise
关于'Devise'的Railscasts剧集
http://railscasts.com/episodes/209-introducing-devise
优秀的“Rails教程”还将引导您从头开始构建注册/身份验证系统 -