因此,我正在嘗試在註冊時爲我的用戶構建一個嚮導。 我無法使用javascript(我發現的是這種表單的一般解決方案)。 原因是我的嚮導中的每個頁面都很重Javascript依賴,這意味着一次加載所有內容都需要很長時間。 哦,該向導處理3種不同的資源。在Ruby on Rails中構建嚮導
我嘗試了一種方法,目前我堅持,坦率地說,感覺不對。
(旁註:用戶將面臨與「體面曝光」寶石)
這是我的嚮導控制器:
def index
case current_step
when 'description'
render 'users/edit'
when 'contact'
render 'contact_informations/edit'
when 'location'
render 'location/edit'
end
end
def current_step
@current_step || STEPS.first
end
def next_step
@current_step = STEPS[STEPS.index(current_step)+1]
index
end
def previous_step
@current_step = STEPS[STEPS.index(current_step)-1]
index
end
def final_step
@current_step == STEPS.last
end
然後我會爲每個資源的一次更新動作(這是相同的嚮導控制器)
def update_description
if user.update_attributes(params[:user])
next_step
else
redirect_to user_wizard_path(user)
end
end
def update_contact_information
# Do stuff here
end
def update_location
# Do stuff here
end
看起來好像在同一個控制器中調用動作時有問題。 基於此,我從來沒有見過這樣做,它感覺不對。
我試圖在簡單中完成: 我不想混淆資源的原始REST控制器。 我希望每一步都得到驗證 如果update_attributes失敗,請重新渲染帶有錯誤的表單。 如果update_attributes成功,則呈現下一步。
我得出的結論是,我在這方面的投機行不通,並不覺得自己是做事的「軌道」。 我看過Ryan Bates的「多步形式」railscast,但即使在那之後,我似乎無法弄清楚這一點。
在此先感謝。 添
真棒,謝謝! – 2012-03-21 17:13:48