我对Rails还是很陌生的,所以我可能在这里错过了一些很重要的专业,这很容易修复,或者可能是我还没学过的一段。
我正在创建一个常规形式的旅游。表单有许多字段,但是有问题的那个字段和我遇到问题的地方是collection_select。我想要做的是在城市页面中显示与那个城市相关的旅游。
这是我得到的错误,这是在我保存旅游后出现的。
City(#70179438153960) expected, got String(#70179401165880)模型/城市.
class City < ActiveRecord::Base
has_many :cities
end模型/旅游.b
class Tour < ActiveRecord::Base
belongs_to :user
belongs_to :city
end我有独立的城市和旅游控制员。非常基本的脚手架,尽管我添加了:city到params.require(:旅游).permit(。
浏览/参观/_form.html.erb
<%= simple_form_for(@tour) do |f| %>
<div class="inputs">
<%= f.input :company, label: "Company", input_html: { class: 'form-control' } %>
...
<%= collection_select :tour, :city, City.all, :id, :city, {:include_blank => true } %>
</div>
...
<% end %>表单显示所有城市都很好,但是用一个城市更新旅游会给我带来一个错误。
作为以后的一个额外的问题,我想展示所有与这个城市相关的旅游。例如,访问城市/1将显示该城市的旅游。
谢谢!
发布于 2013-11-21 04:54:02
<%= collection_select :tour, :city, City.all, :id, :city, {:include_blank => true } %>
是:城市这里是一根绳子吗?此外,城市has_many :城市关系似乎很奇怪。
另外,如果我理解这里的意图(看上去像是巡回演唱会?)然后,使用连接表(:id、:user_id、:city_id)和建立has_many_through关系可能更适合使用多到多的关系。
发布于 2013-11-20 22:08:27
你可以试试这个:
<%= f.select :tour, City.all.map{|c| [c.city, c.id] }, {include_blank: true} %>https://stackoverflow.com/questions/20107741
复制相似问题