2011-12-04 5 views
0

J'ai peu de connaissances sur les requêtes SQL et je suis nouveau sur ruby ​​on Rails. Voici ma question. J'ai 2 tables Country et State. Un pays a beaucoup d'états. Je sais qu'il doit y avoir une clé étrangère dans la table State qui se joint à la table Country. Ainsi, la requête pour obtenir tous les états dans un pays seraitAssociation de modèles

Select * 
From State 
Where 
State. country = Country. country 
And Country.country = 'XYZ' 

Je dois être en mesure de générer une forme pour la création d'un nouvel état, qui a une liste déroulante des pays. Lors de la création d'un état, l'utilisateur peut choisir un pays auquel l'état appartient. Cela m'aidera à récupérer tous les états d'un pays. Je sais que j'ai besoin d'utiliser has_many et belongs_to dans les modèles de pays et d'état respectivement. Mais je ne comprends pas les modifications qui doivent être faites dans les contrôleurs et les vues pour pouvoir obtenir la forme désirée.

Répondre

0

Pour récupérer tous les Etats appartenant à un pays en ruby ​​/ rails que vous appelez simplement l'association sur le modèle de pays. par exemple:

@my_country = Country.find params[:country] 
@states = @my_country.states.all 

Voici comment les associations de rails fonctionnent. Vous n'avez pas besoin de faire le SQL vous-même.

Vous aimerez aussi regarder toutes les autres méthodes que prévoit rails associations ici: http://apidock.com/rails/ActiveRecord/Associations/ClassMethods

+1

Désolé pour les response.Thanks fin beaucoup – Varsha

+0

Non probs - vous devriez probablement « accepter » une des réponses (si cela vous a aidé à résoudre le problème). :) Vous pouvez le faire en cliquant sur le "cocher" à côté de la meilleure réponse. –

0

D'abord je voudrais que vous lisiez sur le livre concernant le rubis alors vous pouvez procéder à des rails.

Livres recommandés: Ruby http://pragprog.com/book/ruby/programming-ruby Ruby on Rails http://pragprog.com/book/rails4/agile-web-development-with-rails

Ce livre vous donnera une idée de comment fonctionne le cadre.

Passage à votre problème. Vous avez juste besoin d'une liste de tous les états et pays. Ensuite, essayez de les mettre dans un tableau de votre formulaire:

Exemple dans la vue (le fichier .html.erb) ----

<% @countries = w{USA Japan etc..}%> 
<% @state = w{state etc...} %> 
<% form_for ..... |f|%> 
<% f.select :country, @country.collect{|c| [c,c]} %> 
<% f.select :state, @state.collect{|c| [c,c]} %> 
<% end %> 
+0

Merci pour les liens – Varsha

Questions connexes