Ruby on Rails Sunday, May 24, 2015

On 24 May 2015 at 02:56, Elizabeth McGurty <emcgurty2@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

--
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/CAL%3D0gLtQj6jz8%2Btd2rHnBGrKO%3Dtj6F9_r_QHqTwBh3if5XqLEw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment