table search question

i have a procedures table and a procedure model - it contain procedure descriptions as well as procedure codes. I would like the user to enter a procedure description (eye surgery) into a test field and then i would like to return the corresponding procedure code. Does this code look correct? the 'find_by_procedure_code' is what confuses me.

@procedure = Procedure.find_by_procedure_code(params[:procedure] [:code])

This is the same as:

  Procedure.find(:first, :conditions => 'procedure_code=?', params[:procedure][:code])

But if you have a description and want to find the corresponding code, this is not the right query; it's finding a procedure given it's code.

If the description field is called "description" then this:

  procedure = Procedure.find_by_description("eye surgery")

would return the first Procedure whose description is "eye surgery", or nil if there is no such procedure. Assuming you found a row,

  code = procedure.code

would give you the code for eye surgery.

HTH