【发布时间】:2016-06-16 09:33:11
【问题描述】:
亲爱的 Rails 程序员,
我的 collection_select form_tag 遇到了一点问题 我正在进行的项目包含 3 个单独的主要模型: 顾客, 拥有者, 地址。
一个客户可以有多个所有者和地址,而每个地址可以分配一个所有者
我面临的问题是我似乎无法将所有者分配给地址
在我的地址控制器new.html.erb中
<%= form_for(@address) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= hidden_field_tag :id, @customer.id %>
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :unit %>
<%= f.text_field :unit, class: 'form-control' %>
<%= f.label :tel %>
<%= f.text_field :tel, class: 'form-control' %>
<%= f.label :working_hours %>
<%= f.time_select :start_at, {minute_step: 30} %> to
<%= f.time_select :end_at, {minute_step: 30} %>
<%= f.label :owner_id %>
<%= f.collection_select :owner_id, @owners, :id, :name, {include_blank: 'Please Select'},%>
.
.
.
<%= f.submit "Add new address", class: "btn btn-primary" %>
<% end %>
在地址.rb中
def new
@address = Address.new
@customer = Customer.find(params[:id])
@owners = Owner.find_by(customer_id: params[:id])
end
我遇到了一个错误:
NoMethodError (nil:NilClass 的未定义方法 `map' 你的意思是?点击):
使用上面的代码.. 但是当我替换时
@owners = Owner.find_by(customer_id: params[:id])
与
@owners = Owner.all
此页面将加载,选择下拉框将允许我在我的 Owners 表中选择 ALL OWNERS.. 我只想搜索 customer_id = params[:id] 的 Owners..
P.S - address 和 owner 表都有 customer_id 列和 address.rb has_many :owners 和 owner.rb belongs_to :address
有人可以帮我吗?谢谢,非常感谢。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4