【发布时间】:2015-02-18 04:25:17
【问题描述】:
我正在尝试提交一个应该包含一组子元素的表单。我不确定我是否正确。有人可以帮我重构吗?
我有几个模型user 和item。一个用户has_many :items。
发送用户和项目信息的表单如下所示 -
<%= form_for(@user) do |f| %>
<% f.text_field :name %>
<% f.fields_for :items do |item| %>
<% item.text_field :name %>
<% item.text_field :price %>
<% end %>
<% end %>
我的控制器中有以下内容 -
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
@items = @user.items.build(item_params)
if @items.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
end
format.html { redirect_to @user, notice: 'User was successfully created. But there was a problem saving the items.' }
else
format.html { render action: 'new' }
format.json { render json: @userd.errors, status: :unprocessable_entity }
end
end
end
private
def user_params
params.require(:user).permit(:name)
end
def item_params
params.require(:user).require(:item).permit(:name, :price)
end
当我保存user 时,只有一条items 记录被保存,这意味着 - 数据没有作为对象数组传递。我如何让它发挥作用?
【问题讨论】:
标签: ruby forms ruby-on-rails-4