缺少模板用户/注册/新用:
{ :locale=>[:en],
:formats=>[:html],
:handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]
继
redirect_to new_user_registration_url
然而,工作正常
render new_user_registration_url
给出了上述错误。
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def facebook
@user, new_record = User.find_or_create(request.env["omniauth.auth"], current_user)
if @user.persisted?
if new_record
sign_in @user
redirect_to basic_profile_detail_path
else
sign_in_and_redirect @user, :event => :authentication
set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format?
end
else
session["devise.facebook_data"] = request.env["omniauth.auth"]
render new_user_registration_url
end
end
end
这是我的控制器,但在保存facebook auth数据之前,我需要向用户询问联系号码,其余表格需要从@user数据中填写。因此,我不能在这种情况下使用重定向。
答案 0 :(得分:0)
Missing template users/registrations/new
表示您必须在名为app/views/users/registrations/
的{{1}}下创建模板文件。 (请参阅例外中的new.html
)。
然而,正如@Marek Lipka所说,你滥用渲染,所以你应该看看下面的guide。
答案 1 :(得分:0)
90%的时间我看到此错误是因为我应该使用
redirect_to '/some-unique-url-in-my-app`
代替
render '/some-unique-url-in-my-app`
剩余时间是因为没有html.erb
文件与应用程序期望的内容匹配。例如,如果您有render "articles/show"
,则您的应用将期望找到一个名为app/views/articles/show.html.erb
还有一个很好的例子here