Thank You Fred
I got it
In model I kept the statement as
self.primary_key = :number
It worked.. Thank you
On Nov 19, 4:59 pm, Frederick Cheung <[EMAIL PROTECTED]>
wrote:
> On 19 Nov 2008, at 11:52, hema gonaboina wrote:
>
> > Hi All,
> > I need to update the records in the mysql with the data
> > fields from the xml where the id field not presented in the database,
> > instead we took the number as primary key but not auto_incremented.
>
> > I treid with many attempts
> > for example my view as follows ..
>
> Your code is pretty impenetrable by virtue of the duplication, bits
> commented out etc... but if you don't have a primary key column you
> should be using set_primary_key to tell rails which column is the
> primary key
>
> Fred
>
> > <h1>Editing employee</h1>
> > <% form_tag :action =>'update',:id => @employee.number do -%>
> > <table>
> > <tr>
> > <td>
> > <%= label 'Employ_No','Employee Number' %>
> > </td>
> > <td>
> > <%= text_field 'employee','number',:value =>
> > @employee.number,:size => "16",:maxlength => "20",:id=>'number' %>
>
> > </td>
> > </tr>
> > <tr>
> > <td>
> > <%= label 'Employ_Name','Employee Name' %>
> > </td>
> > <td>
> > <%= text_field 'employee','name',:value =>
> > @employee.name,:size => "16",:maxlength => "20",:id=>"employ_name" %>
> > </td>
> > </tr>
> > <tr>
> > <td>
> > <%= label 'Employ_Job','Employee Job' %>
> > </td>
> > <td>
> > <%= text_field 'employee','job',:value =>
> > @employee.job,:size => "16",:maxlength => "20",:id=>"employ_job" %>
> > </td>
> > </tr>
> > <tr>
> > <td>
> > <%= label 'Employ_Salary','Employee Salary' %>
> > </td>
> > <td>
> > <%= text_field 'employee','salary',:value =>
> > @employee.salary,:size => "16",:maxlength =>
> > "20",:id=>"employ_salary" %>
> > </td>
> > </tr>
> > </table>
> > <%= submit_tag "Save" %>
> > <% end %>
>
> > I tried with text_field_tag but i found this is the right way since
> > we can access through the params[:employee] for all values and
> > params[:employee][:name] for individual fields
>
> > and in my controller
>
> > def update
> > begin
> > puts "In update"
> > no = params[:id]
> > employ = Employee.new
> > employ.number = params[:employee][:number]
> > employ.name = params[:employee][:name]
> > employ.job = params[:employee][:job]
> > employ.salary = params[:employee][:salary]
> > # puts "#{params[employ_no]}"
> > puts "#{params[:employee][:employ_no]}"
> > puts "#{params[:employee][:name]}"
> > puts "#{params[:id]}"
>
> > employee = Employee.find(:first,:conditions => ["number
> > = ?",no])
>
> > @emp = Employee.find(:first,:conditions => ["number
> > = ?",no])
>
> > puts "before update"
>
> > # if @emp.update(:no,params[:employee]) then
> > # puts "success"
> > # reder :text => "success"
> > # else
> > # puts "failed"
> > # render :text => "failed"
> > # end
>
> > if @emp.update_attributes(params[:employee]) then
> > puts "success"
> > reder :text => "success"
> > else
> > puts "failed"
> > render :text => "failed"
> > end
>
> > # employee.update_attribute(:number,employ.number)
>
> > puts "updated"
> > #if @emp!= nil then
> > # [EMAIL PROTECTED] = params[:employ_no]
> > # @emp.name = params[:employ_name]
> > # @emp.job = params[:employ_job]
> > # @emp.salary = params[:employ_sal]
> > # end
> > puts "#{params[:employee]}"
> > puts @emp
>
> > rescue => e
> > puts "error is #{e}"
> > end
> > end
>
> > Where my model has only 4 fields name,number,job,salary (here number
> > is the primary key)
> > I tried with all the cases and vexed, It is througin error for each
> > case
>
> > @emp.update(:number,params[:employee]) # ERROR : The private method
> > 'update' called
>
> > @emp.update_attributes(params[:employee]) # Mysql::Error:
> > #42S22Unknown column 'id' in 'where clause': UPDATE `employees` SET
> > `salary` = '20000', `number` = 6, `job` = 'se', `name` = 'xxx' WHERE
> > `id` = NULL
>
> > @emp.update_attributes(employ) # ERROR is undefined method
> > `stringify_keys!' for #<Employee>
>
> > How to achieve the updating? Please anybody help me..
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---