karatepicke
Joined
Activity
I was thinking about that particular question as well, as I watched the episode yesterday. Could someone elaborate?
Hey!
I guess you'll need to provide some code, in order for us to be able to help you :)
Things to look out for:
- has your "update"-button the correct path/link specified?
- does your route call the desired controller action?
- is the HTTP-verb correct? (watch out for
method: :delete
on your button specifically)
Cheers,
Dom
Posted in Create Customer Url
Hey Suleiman,
something along those lines should work:
routes.rb
get "/:user_account_number/projects/:project_id", to: "projects#show"
# pay attention to the colons (:) within the url here. It signals to Rails that these are variable parts ("params") which can change.
projects_controller.rb
class ProjectsController < ApplicationController
def show
user = User.find_by(user_account_number: params[:user_account_number])
if user.present?
@project = user.projects.find(params[:project_id])
else
flash[:alert] = "No project found with ID: #{params[:project_id]}"
end
end
end
Regards,
Dom
Hey guys,
I just started a project (based off of Jumpstart Pro). One of its core features should be a price comparison: I'd like the app to fetch prices across different websites/webshops several times a day and display those prices in an aggregated way on the respective product's show
page.
How would you go about designing this? At my current stage I lack the experience to make this design choice all by myself - I definitely want to find the optimal solution, right from the start.
Aspects I am interested in hearing your opinions about are:
- DB design: new model for scraped prices with an association to the product itself? Or just store an array of prices on the product? Etc.
- Worker for the price scraping? (Unfortunately I cannot rely on the existence of APIs to simply request prices from)
- this is totally new to me. What worker should I use?
- it should be fairly to maintain and debug
- optimally, it should be scalable and easy on computing resources
- Error handling:
- how to handle (temporarily) inaccessible websites
- how to maintain a "low profile" and prevent being blocked from fetching a website's information
Thanks in advance for any insight on this!
Posted in How do I learn to write dry code?
In Order to become an overall better software developer, I recommend you read "Clean Code" by Robert C. Martin. I have been developing software for a little more than 2 years now and this book has helped me better understanding what makes good code. Though, if I remember correctly, the code examples are presented in Java, I think you'll get the hang of it just fine.
As for your code example: the overarching pattern seems to be that you export .csv-files in all of these export-controller-methods. You could think about creating some sort of helper-method / controller-concern to which you can pass the data to be exported and the desired output-filename.
def export_csv(data, filename)
# return unless data.any? you could put a guard-clause here, to prevent passing empty data to the export
send_data data.to_csv, filename: "#{filename}.csv"
end
You could then do:
def export_tips
@appointments = Appointment.order('service_id')
export_csv(@appointments, 'tips')
end
def export_pets
@clients = Client.all
export_csv(@clients , 'pets')
end
In addition to what Axel wrote earlier, you could also add a focus
-tag to specific cases, should you only want to test them individually. It works like so:
# specs/discount_checkout_spec.rb
it "should checkout with discount", focus: true do
# some test code here
end
Posted in Ask password after confirmation (devise)
Hey Brijesh,
as far as I can tell from your source code, you'll likely need to adjust your do_confirm
-method within your confirmations_controller.rb
.
Take a look at line 65 where its says "sign_in_and_redirect". Therein should lie your solution, once you changed this, to not sign the user in automatically and redirect him to your sign_in-view instead.
Posted in Github actions & RAILS_MASTER_KEY
Hey Chris, hey community,
I've been following along your guide on setting up GitHub-actions with Rails (https://gorails.com/episodes/github-actions-continuous-integration-ruby-on-rails), however I'm facing an issue in one of the last steps, namely "# Build and run tests":
rails aborted!
ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
/home/runner/work/my-project/my-project/config/environment.rb:5:in `<main>'
/home/runner/work/my-project/my-project/bin/rails:9:in `<top (required)>'
/home/runner/work/my-project/my-project/bin/spring:15:in `require'
/home/runner/work/my-project/my-project/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Caused by:
ArgumentError: key must be 16 bytes
I am inferring that this has to do with my RAILS_MASTER_KEY-variable.
I double-checked the key which I stored in my project's ENV-variables and it happens to be 32 bytes. I am unsure about how to best proceed and I am hesitant to delete the key, in order to create a new one. Setting an option for the key to be legal with 32 bytes would be much preferable in my book - it's just that I wouldn't know how and where...
Any thoughts on how to solve this issue?
Thanks in advance,
Dominik