learn-co-curriculum / sinatra-user-auth Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Hi! So this lab was particularly frustrating for me because it starts out with "In this codealong lab..." and as I was following along, several things were not aligning with what the lab said. For instance
remove all references to multiple controllers
Basically ran into issues with the test every step of the way. Im not even going to list them because it would take too long. It needs a complete fix.
Hi there,
Looks like the README needs to be updated in this lab. There are several times in the controller where 'session[:user_id]' is listed, but the README says to enter session[:id] in two different spots. I did so, following the README and it took a while to figure out that the README was just wrong and the code that came with the lab was actually correct. Seems like a simple fix that would save a bunch of folks a lot of time?
Thank you!
Rose
Hi. I noticed that the README is worded as though most of the code in the application_controller.rb file needs to be written by the student. However, the needed code in that Controller file is already there from the get-go.
Additionally, the post '/sessions'
route has some extra code that isn't mentioned at all in the README, but it is needed to pass the tests.
Thirdly, near the end of "Step 4: Logging In", the README has a few lines of code, followed by this sentence: "Notice that the last line of the route redirects the user to their homepage." The problem with this is that, while the Controller has that last line of code mentioned above, the README does NOT.
I don't know if the code in the Controller should be left as is, or deleted so that students can code along, but the README needs to be re-written either way.
Thanks as always for looking into this!
---Sdcrouse
NoMethodError: undefined method needs_migration?' for ActiveRecord::Migrator:Class /home/shlokjoshi/sinatra-user-auth-cb-gh-000/spec/spec_helper.rb:8:in
<top (required)>'
/usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1455:in require' /usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1455:in
block in requires='
/usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1455:in each' /usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1455:in
requires='
/usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/configuration_options.rb:112:in block in process_options_into' /usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/configuration_options.rb:111:in
each'
/usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/configuration_options.rb:111:in process_options_into' /usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/configuration_options.rb:21:in
configure'
/usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:99:in setup' /usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:86:in
run'
/usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:71:in run' /usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:45:in
invoke'
/usr/local/rvm/gems/ruby-2.3.1/gems/rspec-core-3.7.1/exe/rspec:4:in <top (required)>' /usr/local/rvm/gems/ruby-2.3.1/bin/rspec:23:in
load'
/usr/local/rvm/gems/ruby-2.3.1/bin/rspec:23:in `<top (required)>'
PROBLEM: Update instructions. , See issues #22, #21, #18
NOTIFY: @DoriansGrave, @mdjurdj1, @aturkewi
PROBLEM: Update solution. See issues #24
NOTIFY: @kwebster2
none of my frigging labs will run bundle install or learn submit and no one is able to help me
Please remove either gem 'database_cleaner' or gem 'database_cleaner-active_record' and try again."
This is the output after running bundle install or bundle update.
Test suite can only be run after commenting the database_cleaner gem.
Hi,
To pass this first Step 1: Migration requires a _01 in front of the file name. Example: db/migrate/01_create_users_table.rb
I would not have intuited or thought of that. Over 1 hour to figure out and then with AAQ.
Please make it clearer in the lesson.
Step 1: Migration
Write a migration that creates a Users table with columns for name, email, and password. Run rake db:migrate SINATRA_ENV=test and then run your test suite.
You'll see that you're passing a number of tests, including these:
User
is invalid without a name
is invalid without a email
is invalid without an password
The lesson shows instance variables in the post '/sessions' controller route. Shouldn't these instance variables be local variables since post routes do not render views and thus do not need instance variables?
The tests don't actually test for whether the session was cleared on logout, and the answer logout route doesn't clear the session either. This defeats the purpose of including it in the lab.
There are two databases that come with this lab. It should probably be mentioned in the README that it is necessary to run rake db:migrate SINATRA_ENV=test
in order to build the schema in the right database. If rake db:migrate
is run like the README suggests, then it populates "user_authdevelopment.sqlite" database, but this one is not the one used by the specs.
The existing text in the sign up and log in erb files should probably be updated to be capitalized so that it matches the Capybara tests. 'sign up' to 'Sign Up', 'log in' to 'Log In', etc.
When running on a local Linux Env or in the IDE, executing rake db:create
is met with the following error:
[13:39:26] (master) sinatra-user-auth-v-000
'
// โฅ rake db:create
WARNING: If you plan to load any of ActiveSupport's core extensions to Hash, be
sure to do so before loading Sinatra::Application or Sinatra::Base. If not,
you may disregard this warning.
rake aborted!
ActiveRecord::AdapterNotSpecified: 'development' database is not configured. Available: []
/home/aspen/.rvm/gems/ruby-2.3.7/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:248:inresolve_symbol_connection' /home/aspen/.rvm/gems/ruby-2.3.7/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:211:in
resolve_connection'
/home/aspen/.rvm/gems/ruby-2.3.7/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:139:inresolve' /home/aspen/.rvm/gems/ruby-2.3.7/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:169:in
spec'
/home/aspen/.rvm/gems/ruby-2.3.7/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:50:inestablish_connection' /home/aspen/.rvm/gems/ruby-2.3.7/gems/activerecord-4.2.0/lib/active_record/tasks/database_tasks.rb:109:in
create_current'
/home/aspen/.rvm/gems/ruby-2.3.7/gems/activerecord-4.2.0/lib/active_record/railties/databases.rake:17:inblock (2 levels) in <top (required)>' /home/aspen/.rvm/gems/ruby-2.3.7/gems/rake-12.3.1/exe/rake:27:in
<top (required)>'
/home/aspen/.rvm/gems/ruby-2.3.7/bin/ruby_executable_hooks:24:ineval' /home/aspen/.rvm/gems/ruby-2.3.7/bin/ruby_executable_hooks:24:in
Tasks: TOP => db:create
(See full trace by running task with --trace)
This was replicated on my instance of the IDE, as well as on my local machine running Ubuntu 18.10.
Attempted with Ruby versions 2.3.1, 2.3.3, and 2.3.7, all met with the same error.
The solution was creating an explicit database.yml
file within the config
directory. This is a fairly advanced issue and solution for students at this level of the curriculum, and should be acknowledged as moving from IDE to local environment is not advised until a later lesson.
Example database.yml
file below:
development:
adapter: sqlite3
database: db/user_authdevelopment.sqlite
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/user_authtest.sqlite
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/user_authproduction.sqlite
pool: 5
timeout: 5000
#Staff
I've seen a couple of suggestions that the code along may not be in line with what works for this lab.
learn-co-students/sinatra-user-auth-v-000#66
https://learn.co/handraise_questions/28303
@Lukeghenco not sure if you have time for this, but just tagging you because it's Sinatra.
cc @AnnJohn @PeterBell
Refer to Readme for outline of content
Deadline: 9/15/2015
Found errors in two controller action blocks. Please see my comments in PR #1149.
Will not connect to the repo
@cernanb
The solution branch is not complete. There is a lot of logic missing from the controller.
Something is wrong with either the tests or the code provided. Unable to get past a failed test because the element "email" could not be found (see screenshot). This was part of the supposedly working base code that was provided. Attempted multiple times to correct, replaced every page of my code with the solution (except for the application_controller.rb file, which was inexplicably not 'solved'), and still could not get past that error.
I was getting the following error when running the rspec test suite:
NoMethodError: undefined method
needs_migration?' for ActiveRecord::Migrator:Class`
I was able to find this chunk of code in config.ru
and spec_helper.rb
:
if defined?(ActiveRecord::Migrator) && ActiveRecord::Migrator.needs_migration?
raise 'Migrations are pending run `rake db:migrate SINATRA_ENV=test` to resolve the issue.'
end
When I comment this chunk out, the labs run fine, as does all database functionality.
The code in app/controllers/application_controller.rb was already complete upon clone. The only coding left un-done was the forms in the views
good evening. I just deleted my repository to this lab as I was having a problem with the terminal on the version that I originally forked, and now I am unable to view the web page. I could use some help here please
In Step 1: Migration, the section ends with "Let's think about the concept of validations..." Should there be more info about validations here? The rest of the lesson doesn't mention anything else about it. Thanks!
/.rvm/gems/ruby-2.6.1/gems/activesupport-4.2.0/lib/active_support/core_ext/object/duplicable.rb:85: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.
This error may be "harmless" but defeats the whole learn experience when you cant run tests via learn
or learn --f-f
Rake was not running correctly, so changed rakefile to:
require_relative './config/environment'
require 'sinatra/activerecord/rake'
rspec giving error of:
bundler: failed to load command: rspec (/usr/local/rvm/gems/ruby-2.3.1/bin/rspec)
NoMethodError: undefined method `needs_migration?' for ActiveRecord::Migrator:Class
With a fresh clone of the lab, student gets the following error when attempting to run migrate:
LoadError: cannot load such file -- active_record/railties/databases.rake
I attempted to manually create the database, but student still ran into issues using Rake commands. Student was able to work on other labs which used Rake to build DBs/create migrations, so I suspect this lab may have some faulty instructions/dependencies (noted in the previously raised issue for this lab).
In user_feature_spec.rb...
...Instead of checking for the error, test for a better user experience...Maybe rendering a new error_info page informing the user that the login fail?
Hello,
When completing this codealong lab, it left one of the tests unsolved:
it 'fails to log in with an incorrect password' do
expect(current_path).to eq('/sessions/login')
fill_in("email", :with => valid_user.email)
fill_in("password", :with => "wrong")
click_button('Log In')
expect(current_path).to eq('/sessions/login')
end
specifically, (# ./spec/features/user_feature_spec.rb:46) causes this failure:
expected: "/sessions/login"
got: "/sessions"
I was able to get the test to pass by checking with an if
statement to make sure the computer had been able to find the correct User:
post '/sessions' do
@user = User.find_by(email: params["email"], password: params["password"])
if @user == nil
redirect '/sessions/login'
else
session[:id] = @user.id
redirect '/users/home'
end
end
If your intention was to get students to figure it out on their own, it worked!
:)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.