On 24 May 2015 at 02:56, Elizabeth McGurty <
emcg...@gmail.com> wrote:
> Okay... I am really trying to be super vigilant to best Ruby/Ruby on Rails
> practices here... the whole n + 1 matter particularly
>
> I have a parent table called Advertiser:
>
> This is how it looks on the database:
>
> CREATE TABLE advertisers (
> advertiser_id varchar(40) NOT NULL,
If you are committed to the rails conventions then that should just be
id, not advertiser_id. advertiser_id should be used in another table
that belongs_to advertiser.
> title varchar(50) NOT NULL,
> category_id int(3) NOT NULL DEFAULT '99',
> ...
> class Advertiser < ActiveRecord::Base
>
> require 'uri'
>
> self.primary_key = 'advertiser_id'
> attr_accessor :item_image_upload
> has_one :item_image
> has_one :category
You have has_one category, but also a category_id in the table either
it should be belongs_to category or the field should not be there.
> ...
> CREATE TABLE categories (
> category_id int(3) NOT NULL DEFAULT '99',
> category_type varchar(50) NOT NULL,
> KEY category_type_index (category_type)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
>
>
> Categories exists as category.rb, and this is the model:
>
> class Category < ActiveRecord::Base
>
> self.primary_key = 'category_id'
>
> belongs_to :advertiser
> belongs_to :borrower
> belongs_to :lender
You need _id fields for each of the above.
> ...
> I am really committed to using best practices. What an I doing wrong?
> I am not clear as to model requirement regarding look up values that are
> user nonchangeable... The whole notion, for example, has_one with regard to
> a look up is not clear to me.
Have you worked right through a good tutorial such as
railstutorial.org (which is free to use online), including all the
exercises? That should help to make the basics of rails more clear.
Colin