내 Rails 앱에서 사용자가 새 계정을 만들려고하고 있고 이미 세션이 진행중인 경우 (예 : 로그인 한 상태) "이미 본 것처럼 보입니다. 계정을 갖고있다".세션 확인
<% if session[:user_id]? %>
<div id="error_expanation">Seems like you already have an account with us.
<% link_to "Sign in now", login %></div>
<% end %>
그러나, 다음과 같은 오류이 코드 결과 :
compile error
/path/to/app/views/users/_form.html.erb:17: syntax error, unexpected ';'
');@output_buffer.safe_concat(' ...
^
/path/to/app/views/users/_form.html.erb:42: syntax error, unexpected kENSURE, expecting $end
난
이렇게하려면, 나는 다음과 같은 코드를 사용하여 현재 세션을 확인하기 위해 노력하고있어 꽤 확실한 '세션 [: user_id]?' 그게 문제를 일으키는거야, 왜냐하면 내가 다른 if 서술문에서 뭔가로 대체하면 작동하기 때문이다.
내가 이것을 확인하기 위해 수정해야 할 사항이 있습니까? 감사!
아, 그리고 여기가 필요한 경우 내 sessions_controller.rb이다 : 나는 당신이보다 더 안전 할 것 같은, 로그인 로직 장치 같은 것을 사용하도록 촉구 강하게 것
class SessionsController < ApplicationController
def edit
session[:return_to] = request.referer
end
def new
end
def create
if user = User.authenticate(params[:email], params[:password])
session[:user_id] = user.id
session[:user_name] = user.name
redirect_to admin_url
else
redirect_to login_url, :alert => "Invalid username/password combination"
end
end
def destroy
session[:user_id] = nil
redirect_to admin_url, notice => "You've successfully logged out."
end
end
완벽한 솔루션, 감사합니다. Ruby 문법을 유지하려고 시도하고, 물음표와 같은 것을 사용할 적절한 시간. – rottendevice
함수 호출 끝의 물음표는 항상 함수 정의의 일부이며 함수 결과가 부울 (true 또는 false)임을 나타내는 규칙 일뿐입니다. 다행히 도울 수있어. –