[英]undefined method `model_name' with simple_form on Rails 5
[英]Undefined method `model_name' in Simple_form
所以我有这个两步式Twitter登录,并且在用户必须输入他的电子邮件的页面上,我收到未定义的方法错误。
我的表格 :
<%= simple_form_for(@user, :as => "user", :url => account_create_path, :html => {:class => "form-inline"}) do |f| %>
<%= f.input :email, :placeholder => User.human_attribute_name(:email), :class => "input-medium" %>
<%= f.submit "Finish registration", :class => "btn btn-small" %>
<% end %>
我认为这是一个语法问题,但是由于我对Rails相当陌生,所以我无法弄清楚出了什么问题。 Google也不会告诉我:)
我的Accounts_controller.rb :
def create
data = session["devise.omniauth_data"]
data[:email] = params[:user][:email]
user = User.find_for_twitter_oauth(data)
user.email = data[:email]
if user.save
flash[:notice] = I18n.t "devise.registrations.signed_up_but_unconfirmed"
redirect_to root_path
else
flash[:error] = I18n.t "devise.omniauth_callbacks.failure",
:kind => data[:provider].titleize,
:reason => user.errors.full_messages.first
render "users/omniauth_callbacks/add_email"
end
end
在控制器中将变量user
更改为实例变量@user
,问题将得到解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.