0
我已經建立了設計和Omniauth(:推特),現在我得到,指出設計Omniauth錯誤
ArgumentError at /users/sign_up
First argument in form cannot contain nil or be empty
色器件/ new.html.erb
<h2>Sign up</h2>
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :email, required: true, autofocus: true %>
<% if f.object.password_required? %>
<%= f.input :password, required: true %>
<%= f.input :password_confirmation, required: true %>
<% end %>
</div>
<div class="form-actions">
<%= f.button :submit, "Sign up" %>
</div>
<% end %>
<%= render "devise/shared/links" %>
在第3行錯誤
我改成了
<%= simple_form_for(User.new, as: user url: user_registration_path(user)) do |f| %>
^^ 現在工作,但我知道這不應該做。所以我不知道「資源屬性」是什麼問題,但是它測試我的意志不會憤怒地翻轉這張桌子:)。任何見解都會很棒!
控制器代碼的要求
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
def all
@user = User.from_omniauth(request.env['omniauth.auth'])
if @user.persisted?
flash.notice = "Signed in!"
sign_in_and_redirect user
else
session['devise.user_attributes'] = @user.attributes
redirect_to new_user_registration_path
end
end
alias_method :twitter, :all
end
,所以我通過建立有一項重新去了。從來沒有任何生成的控制器。他們由設計寶石處理。問題出在這個我以上面粗體顯示的「資源」變量上。出於某種原因,這是拋出一個錯誤。
你可以發佈控制器代碼嗎? – Mandeep 2014-10-08 16:08:04
當然。發佈。儘管爲Omniauth多數民衆贊成。我想我已經把它縮小爲一個設計問題。儘管如此。我不是那麼確定。 – 2014-10-08 16:10:36
由於您在註冊表單中收到意想不到的行爲,所以問題應該在註冊控制器 – Mandeep 2014-10-08 16:15:43