0

ここに初めて投稿するので、形式/構造のエラーがあればお詫びします!

Railsアプリケーション用にDeviseを使用してカスタム登録フローを構築しています.githubで表示できます:github.com/BDecker19/theLIST(同じ問題を示しているherokuにもアップロードしました..foundersbloc-thelist.herokuapp .com)

どういうわけか、新しいアカウントを作成しようとすると、電子メールとパスワードのフィールドが入力されていても、空白にすることはできないという検証に失敗するフローを壊してしまったようです。

Devise コントローラーはすべて内部にあるように見えるので、問題を診断する方法がよくわかりません。Wicked を使用して、サインイン後に複数ステップのプロファイル作成プロセスを作成しているため、アプリケーション コントローラーでカスタム after_sign_in_path を設定しましたが、これが問題の原因になっているようには見えませんか? 私もブートストラップを使用していますが、これは何らかの影響を与える可能性がありますか? そうでなければ、それが何であるかはわかりません...

sign_up は以前は機能していましたが、リポジトリを再作成して Heroku にアップロードするときに愚かなことに git 履歴を削除してしまいました。以下に関連するコードの一部を添付するか、他に追加すべき情報があればお知らせください。

事前にどうもありがとう...

ビュー/デバイス/new.html.erb

<div class="border-form-div">
  <h2>Ok, let's get you started...</h2>
  <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
    <%= devise_error_messages! %>
    <%= f.email_field :email, :autofocus => true, :placeholder => 'Email address' %>
    <%= f.password_field :password, :placeholder => 'Password' %>
    <%= f.password_field :password_confirmation, :placeholder => 'Password confirmation' %>
    <%= f.submit "Continue to next step",:class=>'btn btn-primary' %>
  <% end %>
  <%= render "devise/shared/links" %>
</div> 

モデル/user.rb

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
    devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

    attr_accessible :profile_complete, :name, :date_of_birth, :bio

end

*controllers/application_controller.rb*

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception


    # root action
    def home
    end

    def after_sign_in_path_for(resource)
            if current_user.profile_complete == true
                redirect_to root_path
            else 
                user_steps_path
            end
      end

end
4

1 に答える 1

0

私はあなたのコードを引き出し、サーバーを実行しました。今後ログ ファイルを確認すると、ユーザー フィールドの一括割り当てエラーが示されます。

保護された属性のgemを使用して新しいプロジェクトを開始する必要が本当にない限り、私はそれを削除します. これは Rails 3 との下位互換性のためのステップであり、既存のプロジェクトを 3 から 4 にアップグレードする際に主に役立ちます。

次の場合にアプリが機能します。

Gemfile の protected_attributes を削除

gem 'protected_attributes`

ユーザー モデルの attr_accessible 呼び出しを削除します。すべて正常に動作します。

于 2013-09-16T17:14:28.413 に答える