0
我有以下代碼試圖創建一個新的用戶與關聯的新店資源。但是,在正確保存用戶數據的同時,不會創建商店的記錄。哪裏不對?Rails 4.0嵌套表單/數據未保存
用戶控制器:
class UsersController < ApplicationController
def new
@user = User.new
@user.shops.build
end
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "Signed up successfully."
redirect_to root_path
else
flash[:danger] = "Signup failed!"
render 'new'
end
end
private
def user_params
params.require(:user).permit(:email, :password, :password_confirmation,
shop_attributes: [:name])
end
end
用戶模型:
class User < ActiveRecord::Base
has_many :shops
accepts_nested_attributes_for :shops
end
商店模型:
class Shop < ActiveRecord::Base
belongs_to :user
end
形式:
<%= form_for(@user) do |f| %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation %>
<%= f.fields_for :shop do |shop| %>
<%= shop.label :name %>
<%= shop.text_field :name %>
<% end %>
<%= f.submit "Create my account" %>
<% end %>
謝謝您的回答!用'構建'我得到和「未定義的方法'構建'爲#」錯誤:-( –
user3178099
好吧,我編輯了我的答案。你能檢查,複數變化是否足夠了嗎? has_many'或'has_one'店? – AWM
沒有什麼區別,用戶數據被保存,但沒有創建商店記錄 - 我使用'has_many'商店 – user3178099