我有問題有關的登錄和註銷的鏈接。Rails邪惡的寶石
我不使用設計的寶石
在我的代碼我已經給出了以下鏈接
<% if current_user %>
<li><%= link_to 'Logout',{:controller=>'sessions', :action=> 'destroy'}%></li>
<% else %>
<li> <%= link_to 'Signup',{:controller =>'users', :action => 'new'} %> </li>
<li> <%= link_to 'Login,{:controller =>'sessions', :action => 'new'} %> </li>
<% end %>
我現在用的是邪惡的寶石,其還具有以下步驟:
include Wicked::Wizard
steps :business, :login, :payment
如果用戶在users_controller中輸入了新方法的form_for值並提交,則用戶轉到下一步,但上面顯示的鏈接是「註銷」,即用戶在signu之前登錄頁。
怎麼辦?
PLS,給出的任何溶液理解
users_controller.rb:
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
@user.update_attributes(user_params)
session[:user_id]= @user.id
redirect_to user_steps_path
else
render :new
end
end
private
def user_params
params.require(:user).permit(:fname, :lname, :email, :mob, :gender, :country, :state, :suburb, :postal ,:add)
end
end
user_steps_controller.rb
include Wicked::Wizard
steps :business, :login, :payment
def show
@user = current_user
render_wizard
end
def update
@user = current_user
params[:user][:current_step] = step
session[:user_id]= @user.id
@user.update_attributes(user_params)
render_wizard @user
end
private
def redirect_to_finish_wizard(options = nil)
redirect_to root_url
end
def user_params
params.require(:user).permit(:current_step,:cmpyname, :abnacn, :cmpyadd, :cmpydet,:cash, :paypal,:bsb,:usrname,:password, :password_confirmation, :selcat, :protit, :prodes)
end
end
類ApplicationController中<的ActionController ::基地
protect_from_forgery with: :exception
helper_method :current_user
private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
end
能您請詳細說明您的多步表單,即您擁有的各個步驟以及您所面臨的問題。 –
因此,雖然有用戶記錄,但您不會將註冊分類爲完整嗎?聽起來你需要一個用戶的方法(或者使用它們的主講人/裝飾者)來表示註冊完成。那麼你可以'如果current_user && current_user.sign_up_complete?' –
謝謝@japed,但你能給出答案,表明註冊完成 –