2010-12-15 93 views
0

進出口工作創造一個入門控制器,通過上傳照片,找朋友,邀請人等導軌 - 創建GettingStarted控制器

GettingStarted已經沒有模型本身,它只是通過引導用戶引導新用戶一個巫師。用戶可以在不破壞網站的情況下完全繞過這個啓動過程。這只是一個指南...

我所做的迄今:

  1. 創建一個路由,控制器和模型:

路線:

resources :getting_started 
    namespace :getting_started do 
    resource :users, :only => [:edit, :update] 
    end 

控制器:

class GettingStartedController < ApplicationController 

    def index 
    @current_step = current_step 
    end 

protected 

    def current_step 
    current_step || steps.first 
    return 1 
    end 

    def steps 
    %w[step1 step2 step3] 
    end 

end 

型號

class GettingStarted < ActiveRecord::Base 

    attr_writer :current_step 
    attr_accessor :current_step 

    def current_step 
    #current_step || steps.first 
    return 1 
    end 

    def steps 
    %w[step1 step2 step3] 
    end 

    def next_step 
    self.current_step = steps[steps.index(current_step)+1] 
    end 

    def previous_step 
    self.current_step = steps[steps.index(current_step)-1] 
    end 

    def first_step? 
    current_step == steps.first 
    end 

    def last_step? 
    current_step == steps.last 
    end 

end 

查看:

<%= @current_step.inspect %> 
     <% form_for @gettingstarted do |f| %> 
     <table> 
      <tbody> 
       <tr> 
        <td> 
         <%= link_to image_tag current_user.profile_pic.url(:large), :class => 'getting-started-profile-pic' %> 
        </td> 
        <td> 
         <a href="" class="getting-started-link">Upload a photo</a> 
        </td> 
       </tr> 
      <table> 
     <tbody> 
     <% end %> 

現在我卡上,我需要GettingStarted通過現有模型引導用戶的問題,不是一個模型本身。我得到未定義的方法`model_name'爲NilClass:類

建議,對上述想法?

感謝

回答

0

GettingStarted模型中沒有從ActiveRecord::Base繼承,但它確實,你得到錯誤,因爲基地期待一個表中您的數據庫稱爲GettingStarteds,或什麼的。如果你想保持內容的動態性,也就是說把它保存在數據庫中,這樣你就可以改變它,那麼你非常接近,你可以使用像'steps'這樣的自然語言模型,並且這些步驟有一個與它們相關的順序,那麼你可以根據其在入門控制器中的順序來查找步驟。你也可以使用一個步驟,控制器香草工作流,然後用:as =>選項

重命名路由途徑,如果步驟是靜態的,你可能要探討一些靜態頁面模型庫提供如高電壓https://github.com/thoughtbot/high_voltage