【发布时间】:2014-07-31 22:58:19
【问题描述】:
组控制器:
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
查看:
- 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"
当我提交此表单时,我可以看到创建了一个新对象,因为源中有一个新的<li>,但是无论输入如何,该对象都有空白值。
参数(在组控制器中):
def member_params
params.require(:group_member).permit(group_members_attributes: [:first_name, :last_name, :email, :telephone, :relationship, :status])
end
在终端中,我可以看到我输入的值正在传递,但由于某种原因没有被保存。这是终端输出:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"7odxnZzHoyjgF/oougDIVKNR/9RkZOlK3IOpCaUVvpQ=", "group_member"=>{"first_name"=>"name", "last_name"=>"name", "email"=>"name@name.com", "telephone"=>"1234567890"}, "button"=>"", "id"=>"22"}
感谢所有帮助,谢谢。
编辑:
group_member.rb:
class GroupMember < ActiveRecord::Base
belongs_to :group
attr_accessor :first_name, :last_name, :email, :telephone, :relationship
end
【问题讨论】:
-
你可以用
associations发布你的models吗?
标签: ruby-on-rails ruby activerecord