2011-09-02 26 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