私の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]'ですか?それは問題を引き起こしています。なぜなら、別のif文から何かを置き換えると、それが機能するからです。
私はこれを確認するために何を修正する必要がありますか?ありがとう!
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
関数呼び出しの最後の疑問符は、常に関数定義の一部であり、関数の結果がブール値(真または偽)であることを示す慣習に過ぎません。お役に立てて嬉しいです。 –