0
在我的軌道4,5的應用程序,我有一個user
模型has_one
profile
模型也belongs_to
的user
模型軌道4 build_association
這是在使用嵌套的資源這樣的IM我第一次有點失去了它 這裏怎麼了去 ,用戶創建一個帳戶,成功的電子郵件身份驗證後,用戶繼續創建一個配置文件。問題是,使用build_association時出現錯誤。林不知道問題是否是實際或即時得到存在params空值(我想不會)
在我的routes.rb
resources :users do
resources :profiles
end
配置文件查看,new.html.erb
<%= form_for(@profile,url:{ :controller => 'profiles', :action => 'create'},html: {class: "ui large segment form error"}) do |f| %>
<%= render 'shared/form_error_messages', object: f.object%>
<div class="ui horizontal divider">Create a Profile</div>
<%= f.text_field :first_name, :placeholder => "First Name" , :required => true%>
<%= f.submit "Submit Profile", class: "ui submit button"%>
<% end %>
profiles_controller.rb
def new
@user = User.find(params[:user_id])
@profile = @user.build_profile
end
def create
@profile = @user.build_profile(profile_params)
if @profile.save
flash[:success] = "Profile has been created"
redirect_to root_url
else
render 'new'
end
end
private
def profile_params
params.require(:profile).permit(:first_name)
end
時,即時通訊提交表單,即時得到
NoMethodError in ProfilesController#create
undefined method `build_profile' for nil:NilClass
Application Trace | Framework Trace | Full Trace
app/controllers/profiles_controller.rb:9:in `create'
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"MFCANYra..",
"profile"=>{"first_name"=>"sample",
"commit"=>"Submit Profile",
"user_id"=>"1"}
我已經這樣做了,是它的工作原理,雖然它不保存USER_ID,我可以把它的形式做手工,但它會是非常好的,如果有人會自動使用build_association所以它修復了錯誤的部分放入user_id – Remson
謝謝!它沒有在第一因爲輕微的未命中的工作,我deletde的:上PARAMS [資料]因爲[:USER_ID]不是一個輪廓陣列然後它的工作。再次感謝,虐待編輯本和紀念這個作爲檢查 – Remson
很大,我它的工作:-) – sghosh968