私はコーディングと Mhartl チュートリアルの第 8 章にまったく慣れておらず、exec rspec spec/ をバンドルしようとしたときに 34 個のエラーに遭遇しました。残念ながら、エラー 19 ~ 34 しか確認できません (1 ~ 18 は私の端末に収まりません)。
Static pages About page it should behave like all static pages
<[31mFailure/Error:<-[0m <[31mbefore { visit root_path }<]0m
<[31mActionView:Template::Error<[0m:
<[31mSQLite3::SQLException: no such column: users.remember_token: SELECT
"users".* FROM "users" WHERE "users"."remember_token" = 'lotsofrandomcharacters' LIMIT 1<[0m
それがエラー 19 です。他のエラーも同様で、以下を参照してください。
Static pages Help page
Static pages Help page it should behave like all static pages
Static pages Help page it should behave like all static pages
Static pages Home page
Static pages Home page it should behave like all static pages
Static pages Home page it should behave like all static pages
Static pages Contact page
Static pages Contact page it should behave like all static pages
Static pages Contact page it should behave like all static pages
User
User remember token remember_token
User return value of authenticate method with valid password
User return value of authenticate method with valid password
User when email address is already taken
私はプログラミングの初心者であり、これを受け入れるのは非常に圧倒されます。
この章で作業したファイルのいくつかを次に示します。
アプリ/ビュー/レイアウト/_header.html.erb
<header class="navbar navbar-fixed-top navbar-inverse">
<div class="navbar-inner">
<div class="container">
<%= link_to "sample app", root_path, id: "logo" %>
<nav>
<ul class="nav pull-right">
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "Help", help_path %></li>
<% if signed_in? %>
<li><%= link_to "Users", '#' %></li>
<li id="fat-menu" class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Account <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><%= link_to "Profile", current_user %></li>
<li><%= link_to "Settings", '#' %></li>
<li class="divider"></li>
<li>
<%= link_to "Sign out", signout_path, method: "delete" %>
</li>
</ul>
</li>
<% else %>
<li><%= link_to "Sign in", signin_path %></li>
<% end %>
</ul>
</nav>
</div>
</div>
</header>
アプリ/ヘルパー/sessions_helper.rb
module SessionsHelper
def sign_in(user)
remember_token = User.new_remember_token
cookies.permanent[:remember_token] = remember_token
user.update_attribute(:remember_token, User.encrypt(remember_token))
self.current_user = user
end
def signed_in?
!current_user.nil?
end
def current_user=(user)
@current_user = user
end
def current_user
remember_token = User.encrypt(cookies[:remember_token])
@current_user ||= User.find_by(remember_token: remember_token)
end
def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end
end
Rails サーバーを実行し、localhost:3000 で表示しようとすると、次のようになります。
sample_app/app/views/layouts/_header.html.erb 行番号 9 が発生した場所:
SQLite3::SQLException: そのような列はありません: users.remember_token: SELECT "users".* FROM "users" WHERE "users"."remember_token" = 'lotsofcharacters' LIMIT 1
この行は以下を参照しています: <% if signed_in? %>
完全なエラーを読むことさえできないので、ここにリストする他のファイルが正直にわかりません。この章では変更されていないので、連絡先/概要/ホームページは問題ないと思いますが、それらもリストする必要があると誰かが考えた場合は、リストすることができます. 助けてくれてありがとう!