我遇到了与登录和注销链接相关的问题。
我没有使用设计宝石
在我的代码中,我提供了以下链接
<% 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 %>
我正在使用 wicked gem,它也有以下步骤:
include Wicked::Wizard
steps :business, :login, :payment
如果用户在 users_controller 中输入新方法的 form_for 值并提交,则用户进入下一步,但上面显示的链接是“注销”,即用户在注册前已登录。
该怎么办?
请,任何给出的解决方案表示赞赏
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::Base
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