Rails 5 Разработка маршрутов post 'account / login' => "account # login_user",: as =>: session - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть рельсы 5 с Devise '4.5.0'

Это мой гемфайл

source 'https://rubygems.org'
ruby '2.5.7'

gem 'rails', '~> 5.0.0'

gem 'bundler'

gem 'sass-rails'
gem 'tinymce-rails'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2.1'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jquery-turbolinks'
gem 'jbuilder', '~> 1.2'
gem 'bootstrap-sass', '~> 3.3.5'
gem 'devise', '~> 4.5.0'
gem 'omniauth'
gem "paperclip", '~> 5.2.1'
gem 'aws-sdk', '~> 1.59.0'
gem 'masonry-rails', '~> 0.2.1'
gem 'rspec-rails'
gem 'rake'
gem 'rolify', :git => 'git://github.com/EppO/rolify.git'
gem 'public_activity'
gem 'smarter_csv'
gem 'roo'
gem "iconv", "~> 1.0.3"
gem 'newrelic_rpm'
gem 'social-share-button', '~> 0.1.6'
gem 'json', github: 'flori/json', branch: 'v1.8'
gem 'sprockets', '~> 3.0'
#gem 'will_paginate'
#gem 'will_paginate-bootstrap'
gem 'acts-as-taggable-on'
gem 'mandrill-api'
gem 'merit', '~> 2.4.0'
# Use gem font-awesome-sass
gem 'font-awesome-sass'
# Use gem momentjs-rails as dependency of datetimepicker-rails gem
gem 'momentjs-rails'
# Use gem datetimepicker-rails
gem 'datetimepicker-rails', github: 'zpaulovics/datetimepicker-rails', branch: 'master', submodules: true
gem 'simple_form'
gem 'rb-readline'
gem 'kaminari'
gem 'therubyracer'
gem 'omniauth-facebook'
gem 'figaro'
gem 'giocopro'
gem "haml", "~> 5.1.1"
gem "haml-rails"

group :development, :test do
    gem 'sqlite3', '~> 1.3.6'
    gem 'railroady'
    gem 'byebug'
end

group :production do
  gem 'pg', '~> 0.20'
end


group :production do
    gem 'rails_12factor'
end

Это мой конфиг / rout.rb

Lapapayanetwork::Application.routes.draw do
  devise_for :users


  authenticated :user do
    root "pages#userpanel"
  end

  root "pages#userpanel"
  post 'account/login' => "account#login_user"     , :as => :session
  get "about" => "pages#about"
  get "userpanel" => "pages#userpanel"
  get "adminpanel" => "pages#adminpanel"
  get "encuesta" => "encuesta#show", :as => :encuesta
  get "proyectoriocali" => "proyectoriocali#show", :as => :proyectoriocali
  get "videos" => "videos#show", :as => :videos
end

И это мой application_controller.rb

class ApplicationController < ActionController::Base

  protect_from_forgery with: :exception

  before_filter :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    params = [:name, :lastname, :username, :phone, :country, :city,
      :born_date, :website, :facebook, :twitter, :avatar]

    devise_parameter_sanitizer.permit(:sign_up, keys: params)
    devise_parameter_sanitizer.permit(:account_update, keys: params)
  end


  def last_dream
    Dream.where( user_id: current_user.id ).last
  end

  def after_sign_in_path_for(resource)
    if last_dream == nil
      new_dream_path
    else
      "/dreams/#{last_dream.id}"
    end
  end
end

На моем локальном хосте я хотел бы войти в мои пользователи без подтверждения, поэтому я отключил подтверждающий параметр в моей модели / user.rb:

class User < ActiveRecord::Base
  has_merit
  has_many :dreams
  has_many :microposts
  has_many :solutions
  has_many :complices
  has_attached_file :avatar, styles: { :medium => "100x100#", :thumb => "100x100#" }, :default_url => "/images/:style/missing.png"
  validates_attachment_content_type :avatar, content_type: %w(image/jpeg image/jpg image/png image/gif), message: 'Ingresa tu avatar en extensión jpg o png'
  validates_uniqueness_of :username, message: ": Este nombre de usuario ya se encuentra registrado"
  #validates :country, presence: { message: ": Por favor ingresa el país en donde vives" }
  validates :username, presence: { message: ": Por favor ingresa un nombre de usuario" }

  #def mydreams
  #  Dream.where(user_id: 7).count
  #end

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

  def fullname_present?
    name.present? &&
    !name.blank? &&
    lastname.present? &&
    !lastname.blank?
  end

  def half_name_present?
    name.present? &&
    !name.blank? ||
    lastname.present? &&
    !lastname.blank?
  end

end

Но я получаю эту ошибку после входа в мои пользователи:

Ошибка маршрутизации неинициализированная константа AccountController Rails. root: / mnt / f / lapapayaweb / lapapaya2 / lapapaya2 / lapapaya

¿Что эта ошибка означает?

Спасибо за помощь!

1 Ответ

0 голосов
/ 05 февраля 2020

Это означает, что у вас нет контроллера с именем «account». пожалуйста, измените ваш маршрут:

post 'account/login' => "account#login_user"     , :as => :session

Кому:

devise_for :users, controllers: { sessions: 'users/sessions' }

на соответствующий призыв к действию для получения дополнительной информации, пожалуйста, прочитайте:

https://github.com/heartcombo/devise#configuring -routes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...