2010-09-15 9 views
0

J'apprends que Ruby on Rails (pas d'expérience Ruby avant) J'ai ces modèles (ne pas montrer les migrations ici par souci de brièveté - ils sont des champs standards comme prenom, ville, etc.):Comment utiliser un modèle sans contrôleur dans Ruby on Rails?

class User < ActiveRecord::Base 
    has_one :address 
end 

class Address < ActiveRecord::Base 
    has_one :user 
end 

Comment puis-je utiliser la classe Address pour gérer les données de table sous-jacentes? Il suffit d'appeler des méthodes dessus? Comment est-ce que je passerais les valeurs de params/attribut à la classe dans ce cas? (puisque Address n'aura pas de contrôleur pour cela (puisqu'il est destiné à être utilisé en interne)). Comment va-t-on faire quelque chose comme ça?

Répondre

0
u = User.create :first_name => 'foo', :last_name => 'bar' #saves to the database, and returns the object 
u.address.create :street => '122 street name' #saves to the database, with the user association set for you 

#you can also just new stuff up, and save when you like 
u = User.new 
u.first_name = 'foo' 
u.last_name ='bar' 
u.save 

#dynamic finders are hela-cool, you can chain stuff together however you like in the method name 
u = User.find_by_first_name_and_last_name 'foo', 'bar' 

#you also have some enumerable accessors 
u = User.all.each {|u| puts u.first_name } 

#and update works as you would expect 

u = User.first 
u.first_name = 'something new' 
u.save 

#deleting does as well 

u = User.first 
u.destroy 

Il y a plus à ce alors juste cela, laissez-moi savoir si vous avez des questions sur des choses que je ne couvre pas

Questions connexes