Dear fellow rails programmers,
I am facing a little problem on my collection_select form_tag the project i am working on contains 3 seperate major models: customers, owners, addresses.
One customer can have multiple owners and addresses while each address can assign an owner
the problem i am facing is that i cant seem to assign owner to address
in my address controller 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 %>
in address.rb
def new
@address = Address.new
@customer = Customer.find(params[:id])
@owners = Owner.find_by(customer_id: params[:id])
end
I am facing an error:
NoMethodError (undefined method `map' for nil:NilClass Did you mean? tap):
with the code above.. but when i replace
@owners = Owner.find_by(customer_id: params[:id])
with
@owners = Owner.all
this page will load and the select dropbox will allow me to select ALL OWNERS in my Owners table.. i would just like to search for Owners with customer_id = params[:id]..
P.S - both address and owner table has customer_id column and address.rb has_many :owners, and owner.rb belongs_to :address
Can anybody help me? thanks and much appreaciated.
Aucun commentaire:
Enregistrer un commentaire