问题标签 [rails-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1165 浏览

ruby-on-rails - Session in Rails_API gem

I am using the rails_api gem in my project. I want to add session management for authentication, but it seems the session does not work. Here is my configuration in config/initializer/session_store.rb:

I added config.api_only = false in application.rb (Adding cookie session store back to Rails API app)

and in my session_controller, I added session to store the token

When in application_controller, I want to access session[:token] but the result is nil:

0 投票
1 回答
2298 浏览

ruby-on-rails - ActiveModel::Serializer 可以像 Rails 控制器那样具有命名空间名称(嵌套)吗?

问题:

我用我的控制器这样做:

为什么我不能用我的序列化器做到这一点?(或者我可以吗?)

语境:

我有多个控制器/路由对应于一个模型。

而且我需要每个模型有多个序列化器,它们与我的控制器一一对应。

ActiveModel::Serializers允许您从控制器指定序列化程序,如下所示:

那么为什么我也不能这样做呢?

我试图避免像这样的复合名称的丑陋,即使我知道它们会起作用:

  • ProductAlphaLicenseSerializer
  • ProductBravoLicenseSerializer
  • ProductCharlieLicenseSerializer

我的每个模型都支持多个 API,这就是我想要命名序列化程序的原因。每个对应的序列化程序以不同的方式使用每个模型。

0 投票
1 回答
927 浏览

ruby-on-rails - 如何使用 OAuth2 提供者 Mongoid ORM 制作 Rails 4 API?

我试图通过将 Rails 4 API 设为OAuth2 Provider来保护它。

添加了 gem Mongoid '4.0.0'(来自 Git Repo 的主分支)以使其与 Rails 4 一起使用。

现在我希望使用Doorkeeper gem 使 API 成为 OAuth2 提供者。我猜 Doorkeeper 不支持 Mongoid 4(来源:https ://github.com/applicake/doorkeeper/issues/224 )

此外,我不能使用 Mongoid 3.1.2,因为这在 Rails 4 中不起作用。

我不喜欢使用 gem 'oauth-plugin',因为它注入了太多的样板代码。

请建议,我能做些什么来让它工作吗?

先感谢您!:-)

0 投票
1 回答
101 浏览

ruby-on-rails-4 - Omniauth - 动态选择提供者

说我有一个宁静的资源,UserSession

我想UserSessions#create根据提供的参数选择提供程序,而不是使用/auth/:provider通常使用的 OmniAuth。是否有可能做到这一点?

0 投票
4 回答
18298 浏览

ruby-on-rails - Rails:ActionDispatch::Request 的未定义方法“flash”

我正在尝试在 Rails 4 中编写 Ember 应用程序,并决定使用rails-apiapi 控制器,同时在不属于单页应用程序的几个页面上保持应用程序控制器完好无损。更具体地说,这里是我的控制器:

app/controllers/application_controller.rb

app/controllers/sample_controller.rb

app/controllers/api/v1/api_controller.rb

app/controllers/api/v1/sample_controller.rb

我的application.html.slim包含以下行:

包含 which 会导致以下错误:

#< ActionDispatch::Request:0x007f99f41d8720 > 的未定义方法“flash”>

根据关于这个线程的讨论,罪魁祸首似乎是rails-api,但考虑到我设置的继承,我并不完全相信。有什么建议么?

0 投票
5 回答
16275 浏览

ruby-on-rails - 路由错误未初始化常量 API rails

我已经提到了这个链接

创建我自己的 api 但面临路由错误,因为这是我第一次使用命名空间。

这是我的控制器

我的路线有

这是我的转折点.rb

完成后,我尝试了 localhost:3000/api/index.json 但抛出错误为

任何人都可以帮忙。

0 投票
1 回答
591 浏览

ruby-on-rails - 权威宝石给出'未定义的方法'

我在使用带有Authority gem的rails-apiundefined method 'authorize_actions_for'时进入控制器。我需要包括什么想法?这是我的代码:

宝石文件:

应用程序/授权者/session_authorizer.rb:

应用程序/控制器/v1/sessions_controller.rb:

0 投票
4 回答
16151 浏览

ruby-on-rails - 设计用户登录为 CSRF 令牌真实性令牌提供身份验证错误

我正在使用devise(最新版本 - 3.2.0)和rails(最新版本 - 4.0.1)

我正在进行简单的身份验证(没有 ajax 或 api)并收到 CSRF 真实性令牌错误。检查下面的 POST 请求

根 url 指向home#new,就像

Sign_in 页面生成的 html 视图如下:

  • 元标记

    /li>
  • 形式

    /li>

身份验证请求甚至会更新last_sign_in_atsign_in_count值,但是当我尝试current_user在控制器中访问时,它会以nil.

据我说,它实际上并没有登录user。但随之而来的问题是“为什么它在表中更新last_sign_in_at/sign_in_countuser?”

0 投票
1 回答
7042 浏览

ruby-on-rails - 如何响应 rails-api 中的 OPTIONS HTTP 方法?

我正在使用 rails-api 构建一个公共 json api。

我想响应 OPTIONS HTTP 方法以利用跨域资源共享。

http://www.w3.org/TR/cors/

我正在这样做:

它可以工作,但某些 URL 不支持所有 HTTP 方法。在那些情况下,我在撒谎。

我不想为每个 URL 配置 Access-Control-Allow-Methods。

有没有办法根据我的路线响应 Access-Control-Allow-Methods?

0 投票
0 回答
512 浏览

ruby-on-rails - 设计中的 NoMethodError::SessionsController#new

我刚刚在 rails-api 应用程序中安装了 Devise。我已将以下内容添加到我的 ApplicationController:

我已将此添加到我的 config/application.rb 中:

当我尝试访问http://localhost:3000/users/sign_in(受设计保护)时,我看到了错误:

Devise::SessionsController#new
undefined method `permit' for {}:Hash中的 NoMethodError

跟踪指向这里:

不确定我需要包含什么才能让 Devise 知道这个“许可”方法是什么/在哪里。

提前感谢您的帮助。