-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Earth & Water - Denise & Kayla - RideShare Rails #13
base: master
Are you sure you want to change the base?
Conversation
…private method for passenger strong params
…added some html pages to passenger view
…ds for Drivers class // Implemented prived method for driver strong params
…ml pages (index, new, and edit) to driver view
…ger, trip and driver models
…ler and driver model and trip model
…ting tests for controllers
…ml for passengers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rideshare Rails
Major Learning Goals/Code Review
Criteria | yes/no, and optionally any details/lines of code to reference |
---|---|
Practices collaborating with git, and all team members contribute git commits and best git practices | ✔️ |
Demonstrates understanding of relationships by giving accurate answers to the reflection questions and appropriate code in the models | ✔️ |
Logic to calculate a driver's average rating and total earnings is located in the model, and it has unit tests | ✔️ |
There are reasonable tests to test the validation requirements for all models | |
There are reasonable tests to test the relationship requirements for all models | |
There are reasonable tests to test the controller actions for all controllers | |
The app has an attractive and usable user interface | ✔️ |
The app uses/is compatible with database seeds | ✔️ |
Router code is clean: uses resources and RESTful routes |
Functional Requirements
Functional Requirement | yes/no |
---|---|
On the passenger's details page, I want to be able to see total charged, list of trips, a link to edit, and delete | ✔️ |
When adding a new passenger, I want to see errors and validations that show that a passenger must be provided a name and a phone number, so that I cannot make a passenger without name or phone number | ✔️, see one bug with validations in your controller |
On the passenger's details page, I can create a new trip for this passenger, with an assigned driver and no rating | ✔️ |
On the driver's details page, I want to be able to see total earnings, average rating, list of trips, a link to edit, and delete | ✔️ |
When adding a new driver, I want to see errors and validations that show that a driver must be provided a name and VIN, so that I cannot make a driver without name or VIN | ✔️ |
On the trip's detail page, I want to be able to view details, assign a rating, navigate to the trip's passenger, driver, a link to edit, and delete | ✔️ |
Overall Feedback
Overall Feedback | Criteria | yes/no |
---|---|---|
Yellow (Approaches Standards) | 5+ in Code Review && 4+ in Functional Requirements, or the instructor judges that this project needs special attention | 💛 |
Code Style Bonus Awards
Was the code particularly impressive in code style for any of these reasons (or more...?)
Quality | Yes? |
---|---|
Perfect Indentation | ✅ |
Descriptive/Readable | ✅ |
Logical/Organized | ✅ |
Summary
It's clear you had trouble getting the tests in. That was your biggest problem in this project. Otherwise the site mostly works. Take a look at my comments and let me know what questions you have. In bEtsy, I'd like you to focus on writing model & controller tests, so you get the practice down. It's something to work on. Otherwise the site looks good and functions pretty well overall.
class Passenger < ApplicationRecord | ||
has_many :trips | ||
validates :name, presence: true | ||
validates :phone_num, presence: true, format: { with: /\d{3}.*\d{3}.?\d{4}/ } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice I like the regex
def total_spent | ||
return self.trips.map {|trip| trip.cost/100.0}.sum | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice enumerable!
trips_for_driver = self.trips | ||
ratings = 0 | ||
count = 0 | ||
trips_for_driver.each do |trip| |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a note that you could use an Enumerable method like .sum
<div class="errors"> | ||
<% @driver.errors.each do |column, message| %> | ||
<p> | ||
Oops! Your data doesn't look quite right: <strong><%= column.capitalize %></strong> <%= message %>. | ||
</p> | ||
<% end %> | ||
</div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
elsif @passenger.update(passenger_params) | ||
redirect_to passenger_path | ||
return | ||
render :edit, status: :bad_request | ||
return | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing an else case here. This is causing the validation messages not to show.
elsif @passenger.update(passenger_params) | |
redirect_to passenger_path | |
return | |
render :edit, status: :bad_request | |
return | |
end | |
elsif @passenger.update(passenger_params) | |
redirect_to passenger_path | |
return | |
else | |
render :edit, status: :bad_request | |
return | |
end |
end | ||
|
||
describe "update" do | ||
# Your tests go here | ||
it " ill name it later" do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really, you will?
get edit_trip_path(old_trip) | ||
|
||
must_respond_with :success | ||
end | ||
end | ||
|
||
describe "update" do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No tests for updating a nonexistant trip.
No test for updating a trip with invalid params.
end | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No controller tests for add_rating
|
||
invalid_id = 'bad id' | ||
|
||
expect {delete trip_path(invalid_id)}.wont_change "Trip.count" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No test for response code.
end | ||
|
||
describe "destroy" do | ||
# Your tests go here | ||
it "Deletes an instance of trip and redirects" do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No check for response code.
Assignment Submission: Rideshare Rails
Congratulations! You're submitting your assignment. Please reflect on the assignment with these questions. These questions should be answered by all team members together, not by a single teammate.
Reflection