0
我是一名初學者,我在註冊表中遇到問題。用戶模型中未定義的方法
我在不同的表(take a look),但用戶登記表具有email
字段與所有其它字段,諸如用戶名和密碼混合users
和emails
。
起初呈現有沒有的問題,而是試圖挽救,如果發生任何錯誤(如重複username
或email
)我遵循的步驟here,在那裏說的時候(不要redirect_to
,只是做render 'new'
保持先前插入信息。這時候,它拋出一個錯誤說email
不得而知。
我不想在users
創建表的字段email
,因爲我已經從原來的模式。我該如何解決這個問題去掉呢?
表格代碼
<%= form_for :user, url: users_path do |f| %>
<p>
<%= f.label :username %>
<%= f.text_field :username %>
</p>
<p>
<%= f.label :name %>
<%= f.text_field :name %>
</p>
<p>
<%= f.label :email %>
<%= f.email_field :email # Error is thrown in this line %>
</p>
<p>
<%= f.label :password %>
<%= f.password_field :password %>
</p>
<p>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
</p>
<p>
<%= f.submit %>
</p>
控制器代碼
def create
# render plain: params[:user].inspect
@user = User.new(user_registration_params)
if @user.save
email_params = {email: params[:user][:email], primary: true}
@email = Email.new(email_params)
@email.user = @user
if @email.save
redirect_to @user
else
@user.destroy
end
else
render 'new'
end
end
@unmultimedio第二個問題似乎無關的第一。請考慮接受此答案,因爲它似乎解決了您的問題,併爲您的新問題創建了第二個問題。 –