Changing primary.. Rails/mysql

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

<table border="1"> <tr> <td width="20%"><p align="center"><i><b>Author Name</b></i></td> <td width="20%"><p align="center"><i><b>Age</b></i></td> </tr>

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

<tr>

<td><%=h @result.name %></td> <td><%=h @result.age %></td> </tr>

</table>

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:

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

<%=h [result.name](http://result.name) %> <%=h result.age %>

Good luck,

-Conrad

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.