我試圖創建一個配置文件,但由於某種原因相關聯的形式,當我點擊提交按鈕,我得到一個NoMethodError這沒有任何意義我爲我的代碼是完全同樣作爲一個教程中,我下面......除非該教程是過時..
def create
@user = User.find(params[:user_id])
@profile = @user.profiles.create(params[:profile])
redirect_to user_path(@user)
end
NoMethodError在ProfilesController#創建
任何人都知道爲什麼,我發現了NONAME錯誤? 屬於控制器的形式低於: https://github.com/imjp/SuperModel/blob/master/app/views/users/show.html.erb
EDIT 1:固定!下面的代碼不是在http://localhost:3000/users/2顯示配置文件數據(這是輪廓#顯示),但:<%= @user.profile.first_name %>
這裏是我當前的配置#顯示
def show
@user = User.find(params[:user_id])
@profile = @user.profile.find(params[:id])
end
編輯2:我在https://github.com/imjp/SuperModel
你可以嘗試使用create_profile! (用!爆炸版本)來檢查是否引發異常。可能是配置文件模型上的驗證錯誤或attr_accessible/protected集。 – kain
瑙,這是行不通的。我貼我的表演動作上面。任何想法可能導致拋出了這個錯誤的操作? 'undefined method'first_name'for nil:NilClass' – imjp
there is no need to to additional find to profile,just @profile = @ user.profile – kain