我有问题有关的登录和注销的链接。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,但你能给出答案,表明注册完成 –