首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计/无所不在-找不到“facebook”的动作

设计/无所不在-找不到“facebook”的动作
EN

Stack Overflow用户
提问于 2012-07-14 11:10:36
回答 3查看 6.9K关注 0票数 12

我正试图在本指南之后的应用程序中实现facebook身份验证

我已经完成了所有的步骤,但是在登录后得到了下面的错误。

代码语言:javascript
复制
Unknown action

The action 'facebook' could not be found for Devise::OmniauthCallbacksController

我在控制器/用户中创建了文件omniauth_callbacks_controller。它定义了一个facebook方法。知道我该怎么调试吗?

加上我的路线文件-

代码语言:javascript
复制
Myapp::Application.routes.draw do
  get "static_pages/home"

  get "static_pages/help"

  get "static_pages/about"

  devise_for :users do
    resources :posts

  end

  root :to => 'static_pages#home'

  devise_for :users, controllers: {omniauth_callbacks: "omniauth_callbacks"}
end
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-14 15:22:40

如果您查看指南,它为您的路由文件指定了这一行:

代码语言:javascript
复制
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }

你拥有的地方:

代码语言:javascript
复制
devise_for :users, controllers: {omniauth_callbacks: "omniauth_callbacks"}

看到区别了吗?

票数 17
EN

Stack Overflow用户

发布于 2019-05-31 19:23:10

我假设您的用户将能够登录和注销,编辑配置文件,注册在facebook或电子邮件注册,你也可以添加可确认的设计,如果你想。用户表中应该有额外的列。比如首先在用户模型中添加额外的字段。

rails g migration AddFieledsToUser provider:string uid:string image:string

然后运行rails db:migrate

检查您的用户表,确保上面有以下3列

另外,我假设在正确创建facebook应用程序之后,您已经正确地配置了初始化器/devise.rb,如:config.omniauth :facebook, 'APP_ID', 'APP_SECRET_KEY', scope: 'email', info_fields: 'email, name'。另外,假设您已经根据gem文件中的gem、gem 'omniauth', '~> 1.6'gem 'omniauth-facebook', '~> 4.0'正确地创建和配置了您的gem 'omniauth', '~> 1.6'。确保你完成了所有这些步骤。

在您的routes.rb中,可以添加以下内容:

代码语言:javascript
复制
devise_for :users,
         path: '',
         path_names: {
           sign_in: 'login',
           sign_out: 'logout',
           edit: 'profile',
           sign_up: 'registration'
         },
         controllers: {
           omniauth_callbacks: 'omniauth_callbacks',
         }

我想这是你错过的部分。你也可以选择任何你想要的路线。只是说说而已。

票数 1
EN

Stack Overflow用户

发布于 2018-02-07 23:40:44

我在教程中遇到了类似的问题。检查facebook中F的大写字母在用户/omniauth_callback_控制员中。it i使用大写"Facebook“,但它正在寻找小写的"facebook”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11483274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档