kuma
March 24, 2006, 10:18pm
1
I’m tinkering around with an old legacy table in SQL Server 2000.
Ruby 1.8.4, most recent ADO.rb file from RubyForge, Rails 1.0
Here’s the model:
class InventoryItem < ActiveRecord::Base
set_table_name “[SMDBA ].[INVENTOR ]”
set_primary_key “sequence”
end
Everything works fine. I can retrieve records without issue.
However, when create a new instance of InventoryItem, there are no
attributes returned!
i = InventoryItem.new
#<InventoryItem:0x365eee0 @new_record=true, @attributes={}>
Anyone know where I would start looking?
Seems strange then that InventoryItem.find(:first) would return a full
attribute set with all of the data appropriately assigned…
Thanks in advance!
kuma
March 24, 2006, 11:16pm
2
Sorry, but what attributes are you expecting when creating brand new
record
using InventoryItem.new?
kuma
March 25, 2006, 5:45am
3
Well, generally, I’d have an attributes hash filled with the fields in
my
table.
I have a column in the table called “computername”
When I do
i = InventoryItem.new
i.computername = ‘test’
I get a NoMethodException.
It’s really strange. It happens with all of my other tables as well.
kuma
March 25, 2006, 12:34pm
4
Have you tried making a copy of the table without the underscore
characters and see if that works?
Just thinking that the underscores have meaning and may be clouding the
logic.
Does the sequence field have meaing in rails?
kuma
March 25, 2006, 7:04pm
5
Ugh. If I have to remove the underscores then there’s no way I can use
Rails
for this project. These are legacy tables for a third-party (purchased)
system.
As for updating, it appears to be working just fine.
kuma
March 27, 2006, 6:51pm
6
I found my own solution to this problem. The square brackets that wrap
the
table name had to be removed.
set_table_name “SMDBA .INVENTOR ”
instead of
set_table_name “[SMDBA ].[INVENTOR ]”
Thanks for the suggestions.
kuma
March 25, 2006, 10:16am
7
Brian H. wrote:
Anyone know where I would start looking?
Can you update an existing InventoryItem?