J'ai un modèle de jointure appelé AppServer
qui référence trois autres modèles appelés Environment
, Server
et App
. J'ai également ajouté un autre champ dans le modèle AppServer
appelé app_server_id
, que j'ai défini id => false
pour le modèle AppServer
. J'ai ajouté le champ app_server_id
à un stade ultérieur, après avoir peuplé la table et ne pas aller plus loin avec mon other question.Mise à jour/enregistrement d'un attribut dans un modèle de jointure
Donc depuis que j'ai maintenant app_server_id
, j'ai essayé de le remplir, en utilisant la méthode suivante dans le modèle AppServer
:
def generate_id
"#{environment_id}_#{app_id}_#{server_id}"
end
cependant, dans la console de rails, je voulais voir si la méthode fonctionne si je fait ceci:
pry(main)> AppServer.first.generate_id
=> "2_3_1"
essayer Alors maintenant, soit mettre à jour l'attribut ou l'enregistrer ne fonctionnera pas comme indiqué:
pry(main)> AppServer.first.app_server_id = AppServer.first.generate_id
=> "2_3_1"
pry(main)> AppServer.first.app_server_id
=> nil
ou
pry(main)> AppServer.first.update_attribute(:app_server_id, AppServer.first.generate_id)
NoMethodError: undefined method `eq' for nil:NilClass
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.9/lib/active_support/whiny_nil.rb:48:in `method_missing'
ou même
pry(main)> apps=AppServer.first
=> #<AppServer app_id: 3, server_id: 1, environment_id: 2, app_server_id: nil>
pry(main)> apps.app_server_id = apps.generate_id
=> "2_3_1"
pry(main)> apps.save
NoMethodError: undefined method `eq' for nil:NilClass
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.9/lib/active_support/whiny_nil.rb:48:in `method_missing'
Toute idée pourquoi cela pourrait être?
Si vous les gars ont besoin de code plus me faire savoir
Pourquoi votre message IRB dit-il "pry"? – horseyguy
@banister C'est parce que j'utilise un REPL différent de l'IRB. vérifiez-le [sur RailsCast] (http://railscasts.com/episodes/280-pry-with-rails?autoplay=true) – omarArroum
est-ce bon? que pensez-vous de cette nouvelle REPL jusqu'à présent? – horseyguy