2013-06-18 29 views
0

我是紅寶石軌道上的新手。 我想設計一個註冊表單上的紅寶石軌道上有單選按鈕BasicPaid用戶。當用戶點擊付費並點擊提交時,應該發生以下情況:1)重定向到PayPal進行付款。 2)付款確認後,將用戶保存到數據庫(postGres)。基本和付費註冊在單一的Ruby on Rails表格

對於基本用戶,應該創建用戶。目前我已經成功創建並測試了基本的scneario。這裏是我的 new.html.erb

<% provide(:title, 'Sign up') %> 
<h1>Sign up</h1> 

<div class="row"> 
    <div class="span6 offset3"> 
    <%= form_for(@user) do |f| %> 
     <%= render 'shared/error_messages' %> 

     <%= f.label :name %> 
     <%= f.text_field :name %> 

     <%= f.label :email %> 
     <%= f.text_field :email %> 

     <%= f.label :password %> 
     <%= f.password_field :password %> 

     <%= f.label :password_confirmation, "Confirmation" %> 
     <%= f.password_field :password_confirmation %> 

     <label for="theme">User Type:</label> 
     <% [ 'Basic', 'Paid' ].each do |theme| %> 
     <%= radio_button_tag 'theme', theme, @theme == theme %> 
     <%= theme.humanize %> 
     <% end %> 
<br/> 
<br/> 
     <%= f.submit "Create my account", class: "btn btn-large btn-primary" %> 
    <% end %> 
    </div> 
</div> 

這裏是我的conrtoller代碼。

def create 
     @user = User.new(params[:user]) 
     if @user.save 
        sign_in @user 
      flash[:success] = "Welcome to Product Recall!" 
      redirect_to @user 
      else 
      render 'new' 
     end 
    end 

請讓我知道什麼是實施付費方案的最佳方式?由於提前

+1

似乎主題不與用戶相關聯。我想最好是在用戶表中有一個字段來確定它的類型 – Muntasim

回答

1

你可以在你創建行動:

def create 
    @user = User.new(params[:user]) 
    if @user.save 
     sign_in @user 
     if params[:theme] == 'Paid' 
     redirect_to paypal_payment_path #This could be your another action in your controller where you may need to initiate something and redirect to paypal 
     return 
     else 
     flash[:success] = "Welcome to Product Recall!" 
     redirect_to @user 
     end 
    else 
     render 'new' 
    end 
end