在我的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
我很確定'session [:user_id]?''這是造成這個問題的原因,因爲如果我用另一個語句替換它,它就會起作用。
任何想法,我需要修復以檢查這個?謝謝!
哦,這是我的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 2011-02-03 02:52:56