多くの関連記事を読みましたが、それがなぜ機能しないのかわかりません。私はまだ "保護された属性:プロファイル"を割り当てることができません... 私は間違って何をしていますか?保護された属性を指定することはできません:プロファイル、
私はUserモデルと、1対1の関係を持つ関連するProfileモデルを持っています。ここで Userモデル(簡体字)
class User < ActiveRecord::Base
attr_accessible :email, :password, :password_confirmation, :profile_attributes, :profile_id
has_secure_password
has_one :profile
accepts_nested_attributes_for :profile
end
Profileモデル
class Profile < ActiveRecord::Base
attr_accessible :bio, :dob, :firstname, :gender, :lastname, :user_id
belongs_to :user
end
私ユーザコントローラ
def new
@user = User.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @user }
end
end
def create
@user = User.new(params[:user])
@user.build_profile
respond_to do |format|
if @user.save
format.html { redirect_to @user, flash: {success: 'User was successfully created. Welcome !'} }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
それは任意の助けになることができれば、両方ユーザーとプロフィールが足場に乗った。
私はあまりにも試してみました:代わりに、ユーザーattr_accessible、同じ問題で 'profile_attributes' の 'profiles_attributes' ...
は、代わりに '@のuser.build_profile' のuser.profiles.build @ '、あまりにも試してみましたユーザコントローラ...同じ結果で...
いくつかの説明とすべてのヘルプは素晴らしいことだ(私は私を許してレール上のnoobだ)
EDIT 私は
を使用して、簡単なフォーム の<%= simple_form_for(@user) do |f| %>
<%= f.error_notification %>
<%= f.simple_fields_for :profiles do |p| %>
<div class="nested-form-inputs">
<%= p.input :lastname %>
<%= p.input :firstname %>
</div>
<% end %>
<div class="form-inputs">
<%= f.input :email %>
<%= f.input :password %>
<%= f.input :password_confirmation %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
乾杯
これを解決しました。レールクラスのキャッシュで問題が発生しました。レールサーバーを再起動して、すべてが完璧に動作しています。 – ajet