Ruby on Rails Wednesday, June 25, 2014

I have a feeling I am gonna get my ass kicked here, but this is my first attempt at creating real life model logic

I have 3 models: 

  Trader - https://github.com/JonleePeakman/locations/blob/master/app/models/trader.rb 

  Service -https://github.com/JonleePeakman/locations/blob/master/app/models/service.rb 

  Location -https://github.com/JonleePeakman/locations/blob/master/app/models/location.rb


and my DB Schema is: https://github.com/JonleePeakman/locations/blob/master/db/schema.rb


This is all I have at the moment and it does exactly what I want it to do.  I will plan on my controller and views later but I want to pause and review on my work and could use some help as I am unsure if I am overusing callbacks especially in the Service model and what I could do otherwise.


A quick overview of the plan is:

A Trader has and belongs to many Locations and vice-versa, and a Trader has many Services each of which have a range.  This range is the distance a trader may travel to provide the service from their central post_code e.g. a builder might travel 20 miles to build a porch but would travel 50 miles for a customer to build a full house extension.  Therefore the Locations for a Trader all hinge on the maximum range of their Services.  


The Locations table is populated with UK postcode data with Lat/Lon coordinates and all distances and ranges are calculated using the Haversine formula.


The plan is when a User visits the website they enter their post code, firstly all Traders in the Location will be identified.  Then When the user clicks on a specific Trader, the Trader=>'services_in' function will be called to only show the services that the trader provides within their post code.


I hope that makes sense and you have a little time to peruse the models, I could really do with having a discussion on what I have created so far to see how smelly my code is.  As I say I have never done anything to this level before.


much regards


JL

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/e0bf5450-d8f9-4e2e-b484-994c3ec8022c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment