Uzyskuję dostęp do bazy danych, której nie mogę zmienić i która ma zdefiniowaną kolumnę o nazwie valid. Za każdym razem, gdy próbuję uzyskać dostęp do atrybutu, otrzymuję ten wyjątek:Jak korzystać z ActiveRecord w bazie danych z kolumną o nazwie "valid"? (DangerousAttributeError)
ważny? jest określona przez ActiveRecord (ActiveRecord :: DangerousAttributeError)
Wyjątkiem ma sens, ale ponieważ nie jestem w stanie zmienić bazę danych, w jaki sposób można uzyskać wokół tego błędu?
Próbowałem "przesłonić" atrybut, ale nie wiem, jak usunąć oryginalną kolumnę. Mogę pomyślnie wywołać tę metodę valid_column, ale zawsze, gdy próbuję uzyskać dostęp do innego atrybutu zdefiniowanego w bazie danych, otrzymuję ten sam wyjątek. Nadal wydaje się próbować odwzorować prawidłową kolumnę.
def valid_column=(valid)
write_attribute(:valid, valid)
end
def valid_column
read_attribute(:valid)
end
Nie jestem pewien, czy to ważne, ale tutaj są szczegóły mojego środowiska:
- systemu Windows Ruby 1.8.6
- bazy danych Informix na serwerze Linux
- (ActiveRecord 2.3.4)
- activerecord-informix-adapter (1.0.0.9250)
- ruby-informix (0.7.1)
Z góry dziękuję!
Być może trzeba zmienić 'return true jeśli method_name ==„valid'' do 'return true jeśli method_name == 'ważne?'', Aby zmusić go do pracy. Zrobiłem. –
Znak zapytania wydaje się być potrzebny w szynach 3. – Kelvin