我对SQL查询知之甚少,而且我是Rails上的ruby的新手。 这是我的问题。我有2个表国家和州。一个国家有很多州。 我知道状态表中必须有外键才能连接到Country表。 所以获取一个国家所有州的查询将是
Select *
From State
Where
State. country = Country. country
And Country.country = 'XYZ'
我需要能够生成一个用于创建新状态的表单,该表单包含国家/地区的下拉列表。在创建状态时,用户可以选择该州所属的国家/地区。这将帮助我检索一个国家的所有州。我知道我需要分别在Country和State Models中使用has_many和belongs_to。但我无法理解控制器和视图中要进行的修改,以便能够获得所需的形式。
答案 0 :(得分:0)
首先,我希望您阅读关于红宝石的书,然后您可以继续使用。
推荐书籍: Ruby http://pragprog.com/book/ruby/programming-ruby Ruby on Rails http://pragprog.com/book/rails4/agile-web-development-with-rails
本书将帮助您了解框架的工作原理。
继续你的问题。您只需要一份州和国家的清单。然后尝试将它们放在表单数组中:
实施例 在视图中(.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 %>
答案 1 :(得分:0)
要在ruby / rails中获取属于某个国家/地区的所有州,您只需在国家/地区模型上调用该关联即可。例如:
@my_country = Country.find params[:country]
@states = @my_country.states.all
这是rails协会的工作方式。您不需要自己制作SQL。
您可能还想查看rails在此处为关联提供的所有其他方法:http://apidock.com/rails/ActiveRecord/Associations/ClassMethods