Changing primary.. Rails/mysql

I am using Rails 2.0.2 with mysql database
Migrate sets the primary key to id.
Is it possible to change it to another column?
If yes, how?
Thanks for your help

Cypray.

First thing I would ask is “why?” What is the reason behind the
change?

Well, I am having trouble with this query:

class Author < ActiveRecord::Base

has_many :books

def author_age
@results = Author.find :all, :conditions => [“age = ?”,
params[:authors]]
end
end

I have this on view\authors\show.html

<% @results.each do |result| %>

Author Name

Age

<%=h @result.name %> <%=h @result.age %>

I am getting this error: “You have a nil object when you didn’t
expect it!”
The log shows “NULL” for the selected age whose value should be passed
in as the condition for the query.

So, I wanted to change the primary key just to see if it might make any
difference. I don’t know what is wrong with the query.
In SQL, the query is like this:
SELECT name, age FROM author WHERE age = “the user selected age”

Cypray.

Bobnation wrote:

First thing I would ask is “why?” What is the reason behind the
change?

On Fri, Dec 5, 2008 at 10:50 PM, Jay M.
[email protected]wrote:

end

<% @results.each do |result| %>

<%=h @result.name %> <%=h @result.age %>

Hi, in the above HTML, you should be using result instead of @result.
For
example,

<%=h result.name %> <%=h result.age %>

Good luck,

-Conrad

On Fri, Dec 5, 2008 at 10:50 PM, Jay M.
[email protected] wrote:

def author_age
@results = Author.find :all, :conditions => [“age = ?”,
params[:authors]]
end

I am getting this error: “You have a nil object when you didn’t
expect it!”
The log shows “NULL” for the selected age whose value should be passed
in as the condition for the query.

So, I wanted to change the primary key just to see if it might make any
difference. I don’t know what is wrong with the query.

Change the primary key? Why not repaint your bedroom? Maybe
put new tires on the car? :slight_smile:

I already told you in another thread: params[:authors] IS NOT the
value you think it is. You are NOT PASSING a valid value for “age”
so of course the result set is empty, giving you a nil @results.

Your form doesn’t match up with your code. That’s the problem.


Hassan S. ------------------------ [email protected]