Logan Bailey

Adventures In Web Development

Blog, About, GitHub, and LinkedIn

This is how to create a model relationship in Ruby on Rails where one model, Message, has two foreign keys to another model, User. The sql tables are defined below, and is given the solution in Ruby and how to retrieve the values.

CREATE TABLE `user`(
    `id` INT(10) PRIMARY KEY,
    `name` VARCHAR(25)
 );

CREATE TABLE `message` (
    `id` INT(10) PRIMARY KEY,
    `author_user_id` INT(10), 
    `recipient_user_id` INT(10),
    `subject` VARCHAR(250)
);

To create the correct ORM relations use the following ruby code:

class Message < ActiveRecord::Base
    belongs_to :author, :class_name => "User", :foreign_key => "author_user_id" 
    belongs_to :recipient, :class_name => "User", :foreign_key => "recipient_user_id"
end

With the above code you can access user data via <%= @message.author.name %>