Testing foreign key of rails fail

I have a some warnings about the referencing of foreign key,
i did try several way to solve this problem but i am still stuck with
foreign key.
is the syntax of setting foreign key is wrong?

can anyone help to fix the problem

~user table
id
name
address
guest

~ prescription table
id
person (integer)
picture
date_written

~user model
has_many :prescriptions

~ prescription model
belongs_to :person, :foreign_key => “person” ,:class_name => ‘User’

~userTest
context "belong to and have many association " do
should have_many :prescriptions
end

~prescriptionTest
context “belongs to relationship” do
should belong_to :person
end

  1. Failure:
    test: belong to and have many association should have many
    prescriptions. (UserTest) [/usr/local/lib/ruby/gems/1.9.1/gems/
    shoulda-2.11.3/lib/shoulda/context.rb:324]:
    Expected User to have a has_many association called prescriptions
    (Prescription does not have a user_id foreign key.).
    Expected block to return true value.

thanks

On 12 July 2011 19:22, Yennie [email protected] wrote:

name
~user model
has_many :prescriptions

As in the other thread I think you need to specify the foreign key here
also.
As a matter of interest why are you specifying all these non-standard
foreign keys rather than the default

~ prescription model
belongs_to :person, :foreign_key => “person” ,:class_name => ‘User’

Again as I suggested much earlier I think you will run into problems
with the name of the foreign key the same as the model. If you say
@prescription.person how will rails know whether you mean the foreign
key field (which is an integer) or the associated user? person_id
would be more conventional and safer I think.

Colin

On Jul 12, 4:04pm, Colin L. [email protected] wrote:

I have a some warnings about the referencing offoreignkey,
guest

~ prescription table
id
person (integer)

person_id => This is a foreign key of user

I change like that. but it’s still giving me warning…

please help…

~ prescription model
belongs_to :person, :foreign_key => “person” ,:class_name => ‘User’

belongs_to :user, :foreign_key => “person_id” ,:class_name => ‘User’

~prescriptionTest
context “belongs to relationship” do
should belong_to :person
should belong_to :user

On 13 July 2011 01:54, Yennie [email protected] wrote:

[big snip]

So is it all working now?

If not then show us the current code and error if you want more help.

Colin