group controller:
def show
@cat = Category.find_by_id(params[:id])
if @cat.group
@group = @cat.group
@members = @cat.group.group_members.all
@mem = @group.group_members.build
else
@cat.build_group
@cat.save
@mem = @cat.group.group_members.build
end
end
def add_member
@cat = Category.find_by_id(params[:id])
@group = @cat.group
@group.group_members.build(member_params)
if @group.save
redirect_to group_path
end
view:
- if @members.length > 0
- @members.each do |member|
%ul
%li
= member.first_name
= simple_form_for @mem, url: member_add_path(@cat.id), html: {:id => 'step_two_form'} do |f|
= f.label "First name"
= f.input :first_name, label: false
= f.label "Last name"
= f.input :last_name, label: false
= f.label "Email"
= f.input :email, label: false
= f.label "Phone number"
= f.input :telephone, label: false
= f.button :button, "Add member"
When I submit this form I can see that a new object is created as there is a new <li> in the source however the object has blank values, regardless of the input.
params (in the group controller):
def member_params
params.require(:group_member).permit(group_members_attributes: [:first_name, :last_name, :email, :telephone, :relationship, :status])
end
In the terminal I can see that the values I input are being passed but for some reason are not being saved. Here is the terminal output:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"7odxnZzHoyjgF/oougDIVKNR/9RkZOlK3IOpCaUVvpQ=", "group_member"=>{"first_name"=>"name", "last_name"=>"name", "email"=>"[email protected]", "telephone"=>"1234567890"}, "button"=>"", "id"=>"22"}
All help is appreciated, thank you.
EDIT:
group_member.rb:
class GroupMember < ActiveRecord::Base
belongs_to :group
attr_accessor :first_name, :last_name, :email, :telephone, :relationship
end
modelswithassociations?