2016-02-21 3 views
0

Я пытаюсь использовать Devise Gem. Я пытаюсь создать учетную запись, не войдя в систему. Контроллер модели возвращает мне эту ошибку: ErrorActionController :: UnknownFormat in in create метод

Я не понимаю. Что вызывает эту ошибку? Мой проект на GitHub является https://github.com/linneudm/tesouraria-dm

members_controller:

class MembersController < InheritedResources::Base 
    before_action :set_member, only: [:show, :edit, :update, :destroy] 
    before_action :authenticate_member! 

    # GET /members 
    # GET /members.json 
    def index 
    @members = Member.all 
    end 

    # GET /members/1 
    # GET /members/1.json 
    def show 
    end 

    # GET /members/new 
    def new 
    new! 
    end 

    # GET /members/1/edit 
    def edit 
    end 

    # POST /members 
    # POST /members.json 
    def create 
    create! 
    respond_with(@member, :location => nil) 
    end 

    # PATCH/PUT /members/1 
    # PATCH/PUT /members/1.json 
    def update 
    respond_to do |format| 
     if @member.update(member_params) 
     format.html { redirect_to @member, notice: 'Member was successfully updated.' } 
     format.json { render :show, status: :ok, location: @member } 
     else 
     format.html { render :edit } 
     format.json { render json: @member.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # DELETE /members/1 
    # DELETE /members/1.json 
    def destroy 
    destroy! { members_url } 
    end 

    private 
    # Use callbacks to share common setup or constraints between actions. 
    def set_member 
     @member = Member.find(params[:id]) 
    end 

    private 
    def permitted_params 
     params.permit(:member => [:name, :email, :password, :password_confirmation,:dt_Admission, :situation, :function, :start_Managment]) 
    end 

    # Never trust parameters from the scary internet, only allow the white list through. 
    def member_params 
     params.require(:member).permit(:name, :email, :password, :password_confirmation, :dt_Admission, :situation, :function, :start_Managment) 
    end 
end 

registrations_controller:

class RegistrationsController < Devise::RegistrationsController 
    before_action :update_sanitized_params, if: :devise_controller? 


    def update_sanitized_params 
    devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:name, :email, :password, :password_confirmation)} 
    devise_parameter_sanitizer.for(:account_update) {|u| u.permit(:name, :email, :password, :password_confirmation, :current_password)} 
    end 
end 

Маршруты:

Rails.application.routes.draw do 
    as :member do 
    resource :registration, only: [:edit, :update], :path => '/members' 
    end 
    resources :members, :only => [:new, :create] 

    devise_for :members, :controllers => { :registrations => 'registrations'} 

    resources :expenses 
    resources :incomings 
    resources :expenses 
    resources :members 
    get 'home/index' 
    root to:'home#index' 


    #post 'members' => 'members#create ', as: :create_member 

end 

_form.html.erb - регистрация

<%= form_for(resource, as: resource_name, url: registration_path(resource_name), :html => { :class => "form-horizontal member" }) do |f| %> 

    <%= devise_error_messages!%> 

    <div class="form-group"> 
    <%= f.label :name, :class => 'control-label col-lg-2' %> 
    <div class="col-lg-6"> 
     <div class="input-group"> 
     <span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span> 
     <%= f.text_field :name, autofocus: true, :class => 'form-control' %> 
     </div> 
    </div> 
    <%=f.error_span(:name) %> 
    </div> 

    <div class="form-group"> 
     <%= f.label :email, :class => 'control-label col-lg-2' %> 
     <div class="col-lg-6"> 
     <div class="input-group"> 
     <span class="input-group-addon"><span class="glyphicon glyphicon-envelope"></span></span> 
     <%= f.email_field :email, :class => 'form-control' %> 
     </div> 
     </div> 
     <%=f.error_span(:email) %> 
    </div> 

    <div class="form-group"> 
    <%= f.label :password, :class => 'control-label col-lg-2' %> 
    <% if @minimum_password_length %> 
     <em>(<%= @minimum_password_length %> characters minimum)</em> 
    <% end %> 
    <div class="col-lg-6"> 
     <div class="input-group"> 
      <span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span> 
      <%= f.password_field :password, autocomplete: "off", :class => 'form-control'%> 
     </div> 
    </div> 
    <%=f.error_span(:password) %> 
    </div> 

    <div class="form-group"> 
    <%= f.label :password_confirmation, :class => 'control-label col-lg-2' %> 
    <div class="col-lg-6"> 
     <div class="input-group"> 
      <span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span> 
     <%= f.password_field :password_confirmation, autocomplete: "off", :class => 'form-control' %> 
     </div> 
    </div> 
    <%=f.error_span(:password_confirmation) %> 
    </div> 

    <div class="form-group"> 
    <div class="col-lg-offset-2 col-lg-10"> 
     <%= f.submit "Sign up", :class => 'btn btn-primary' %> 
     <%= link_to "Log in", new_member_session_path, :class => 'btn btn-info' %> 
     <%= link_to t('.cancel', :default => t("helpers.links.cancel")), 
       root_path, :class => 'btn btn-default' %> 
    </div> 
    </div> 
<% end %> 
+0

Если вы задаете вопросы здесь, пожалуйста, вы можете добавить текст своей ошибки вместе с содержимым вашего кода (пожалуйста, прочитайте эту справку: http://stackoverflow.com/help/mcve), а не просто ссылки. Это помогает не только людям, отвечающим на ваш вопрос, но и любому в будущем, который смотрит на ваш вопрос, если ссылки больше не работают. –

+0

Хорошо, извините. Спасибо за объяснение! –

ответ

0

Адрес: member.members, rails принимает '.members' как расширение, например .json или .xml, поэтому вы получаете эту ошибку.

+0

Что я должен изменить? Форма? URL-адрес «member.members», а не «members.member»? –

+0

как вы создаете ссылку, которая идет на этот маршрут? – Eduardo

+0

Существует контроллер, который указывает на SIGN UP Devise, т.е. без входа в систему. Контроллер - это «регистрации». Я отправлю его по теме. –

0

Эта ошибка показывает, что вы не запрашиваете URL-адрес как json или html.check, чтобы узнать, в каком формате он попадает в URL-адрес.

+0

Я проверил консоль. Он пытается зафиксировать БД, но возвращает это: Начал POST «/members.member» - 127.0.0.1 на 21.02.2016 15:50:21 -0300 Обработка по MemberController # create as и ошибка в действии ActionController :: UnknownFormat (ActionController :: UnknownFormat): app/controlslers/members_controller.rb: 28: in 'create ' Так что извините, я новичок. –

Смежные вопросы