ActiveRecord::UsersController#index の RecordNotFound
ID Rails.root のない UserSession が見つかりませんでした: C:/Sites/login_app
アプリケーション トレース | フレームワーク トレース | フル トレース app/controllers/application_controller.rb:9:in current_user_session'
app/controllers/application_controller.rb:14:in
current_user' app/views/layouts/application.html.erb:12:in _app_views_layouts_application_html_erb__233847886_33215772'
app/controllers/users_controller.rb:7:in
index'
class ApplicationController < ActionController::Base
protect_from_forgery
helper_method :current_user private
def current_user_session
定義されている場合は @current_user_session を返しますか?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
定義されている場合は @current_user を返しますか?(@current_user)
@current_user = current_user_session && current_user_session.記録
終了
_class HomeController < ApplicationController
def index
end
end
クラス UserSessionsController < ApplicationController
def new
@user_session = UserSession.new
Respond_to do |フォーマット|
format.html # new.html.erb
format.xml { render :xml => @user_session }
end
enddef create
@user_session = UserSession.new(params[:user_session])
Respond_to do |フォーマット|
if @user_session.save
format.html { redirect_to(:users, :notice => 'ログイン成功') }
format.xml { render :xml => @user_session, :status => :created, :location => @user_session }
else
format.html { render :action => "new" }
format.xml { render :xml => @user_session.errors, :status => :unprocessable_entity }
end
end
end
def destroy
@user_session = UserSession.find
@user_session.destroy
Respond_to do |フォーマット|
format.html { redirect_to(:users, :notice => 'さようなら!') }
形式。
終わり
終わり
終わりclass UsersController < ApplicationController
def index
@users = User.all
Respond_to do |フォーマット|
format.html # index.html.erb
format.json { render json: @users }
end
enddef show
@user = User.find(params[:id])
Respond_to do |フォーマット|
format.html # show.html.erb
format.json { render json: @user }
end
enddef new
@user = User.new
Respond_to do |フォーマット|
format.html # new.html.erb
format.json { render json: @user }
end def edit @user = User.find (params[:id])
enddef create
@user = User.new(params[:user])
Respond_to do |フォーマット|
if @user.save
format.html { redirect_to(:users, :notice => '登録成功') }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
def update
@user = User.find(params[:id])
Respond_to do |フォーマット|
if @user.update_attributes(params[:user])
format.html { redirect_to @user, notice: 「ユーザーは正常に更新されました。」}
format.json { head :no_content }
else
format.html { render アクション: "edit" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
def destroy
@user = User.find(params[:id])
@user.destroy
Respond_to do |format|
format.html { redirect_to users_url }
format.json { head :no_content }
end
end
end
layout/apllication.html
LoginApp
<%= stylesheet_link_tag :all %>
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>
<% if current_user %>
<%= link_to "Edit Profile", edit_user_path(current_user.id)% >
<%= link_to "Logout", :logout%>
<% else %>
<%= link_to "Register", new_user_path%>
<%= link_to "Login", :login %>
<% end %>
<%= yield %>
user_seesion/_form.html
<%= form_for(@user_session) do |f| %>
<% if @user_session.errors.any? %>
<%=pluralize(@user_session.errors.count, "error") %> は、この user_session の保存を禁止しました:
- <%= メッセージ %>
<% @user_session.errors.full_messages.each do |msg| %>
<%終了%>
<%終了%>
<%= f.label :username %>
<%= f.text_field :username %>
<%= f.label :password %>
<%= f.password_fields :password %>
<%= f.submit %>
<%終了 %>user_sessions/edit.html
user_session の編集
<%= render 'form' %>
<%= link_to 'Show', @user_session %>
| <%= link_to 'Back', user_sessions_path %>user_sessions/index.html :
user_sessions の一覧表示
ユーザー名
パスワード
<% @user_sessions.each do |user_session| %>
<%= user_session.username %>
<%= user_session.password %>
<%= link_to 'Show', user_session %>
<%= link_to 'Edit', edit_user_session_path(user_session) %>
<%= link_to 'Destroy' , user_session, method: :delete, data: { confirm: 'よろしいですか?' } %>
<% 終了 %>
<%= link_to '新しいユーザー セッション', new_user_session_path %>
- user_sessions/new.html
ログイン
<%= 'フォーム' をレンダリング %>
<%= link_to 'Back', user_sessions_path %>
- user_sessions/show.html
<%= お知らせ %>
ユーザー名:
<%= @user_session.username %>
パスワード:
<%= @user_session.password %>
<%= link_to 'Edit', edit_user_session_path(@user_session) %>
| <%= link_to 'Back', user_sessions_path %>
-users/_form.html
<%= form_for(@user) do |f| %>
<% if @user.errors.any? %>
<%=pluralize(@user.errors.count, "error") %> は、このユーザーの保存を禁止しました:
<ul><br/>
<% @user.errors.full_messages.each do |msg| %><br/>
<li><%= msg %></li><br/>
<% end %><br/>
</ul><br/>
</div><br/>
<%終了%>
<%= f.label :ユーザー名 %>
<%= f.text_field :ユーザー名 %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
<%= f.submit 'create user'%>
<% end %>
- users/edit.html
ユーザーの編集
<%= 'フォーム' をレンダリング %>
<%= link_to 'Show', @user %>
| <%= link_to 'Back', users_path %>
- ユーザー/index.html:
ユーザーの一覧表示
<%=通知%>
ユーザー名
メール
<% @users.each do |ユーザー| %>
<%= user.username %>
<%= user.email %>
<%= link_to 'Show', user %>
<%= link_to 'Edit', edit_user_path(user) %>
<%= link_to 'Destroy' , user, :confirm => 'よろしいですか?', :method => :delete %>
<% end %>
<%= link_to '新しいユーザー', new_user_path %>
- ユーザー/new.html:
新しいユーザー
<%= render 'form' %>
<%= link_to 'Back', users_path %>
- users/show.html :
<%= お知らせ %>
ユーザー名:
<%= @user.username %>
電子メール:
<%= @user.email %>
暗号化されたパスワード:
<%= @user.crypted_password %>
パスワードソルト:
<%= @user.password_salt %>
持続トークン:
<%= @user.persistence_token %>
<%= link_to 'Edit', edit_user_path(@user) %>
| <%= link_to 'Back', users_path %>