小编Jig*_*ggs的帖子

让Devise在注册时创建子域

我想让Devise在我的网站上创建子域名.

现在,我有两个型号:

  1. 公司:A Company可以直接在网站上注册,登录后可以邀请其员工.当公司注册时,我想要创建一个独特的子域名(例如example.com => techcraz.example.com.)

  2. 员工:Employee只有在收到邀请链接时才能注册.

我想要的是什么:

  • 主域名作为注册页面.
  • 两个Companies和的单一登录页面Employees.
  • 登录时,他们必须提供域名,然后应将其重定向到该子域的登录页面(例如techcraz.example.com/signin.)
  • 输入不存在的URL时,应将其重定向到注册页面.

我是Rails的新手.请帮忙!

提前致谢!

ruby subdomain ruby-on-rails devise

7
推荐指数
1
解决办法
2249
查看次数

错误:rails中的'不兼容的库版本'sqlite3-1.3.11

我在Ubuntu系统上工作(16.04).

我的问题是每当我设置任何rails项目并尝试运行rails s然后我得到'不兼容的库版本'错误sqlite3如下所示.

/home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/activesupport-4.0.0/lib/active_support/values/time_zone.rb:282: warning: circular argument reference - now
/home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `require': incompatible library version - /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3/sqlite3_native.so (LoadError)
    from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `rescue in <top (required)>'
    from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:2:in `<top (required)>'
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:77:in `require'
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:77:in `block (2 levels) in require'
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:72:in `each'
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:72:in `block in require'
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:61:in `each'
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:61:in `require'
    from /usr/lib/ruby/vendor_ruby/bundler.rb:99:in `require'
    from /home/jiggs/sites/albumriverfinal/config/application.rb:7:in `<top (required)>'
    from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require'
    from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>'
    from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
    from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>'
    from bin/rails:4:in `require' …
Run Code Online (Sandbox Code Playgroud)

ruby sqlite ruby-on-rails sqlite3-ruby ruby-on-rails-3

4
推荐指数
1
解决办法
3916
查看次数

哪一个最适合"订单"和"sort_by"的表现?

哪一个最适合表现?

1)订单(数据库端计算)

2)sort_by(Ruby方面计算)

按照我的想法sort_by应该快order.因为order从数据库那边进行所以sort_by在得到结果之后变得慢,并且在红宝石一侧进行但是因为看这个结果所以混乱了.

=>正常查询(需要更多时间ordersort_by查询): -

> User.all
SELECT "users".* FROM "users"
#<Benchmark::Tms:0x000000089e4398 @cstime=0.0, @cutime=0.0, @label="", @real=6.515499990200624e-05, @stime=0.0, @total=0.0, @utime=0.0>
Run Code Online (Sandbox Code Playgroud)

=>使用order基准测试查询(比普通查询和sort_by查询花费更少的时间): -

> User.order(:name)  # `order` query is perform in sql so should take more time
User Load (0.6ms)  SELECT "users".* FROM "users"   ORDER BY "users"."name" ASC
#<Benchmark::Tms:0x00000007ec48c8 @cstime=0.0, @cutime=0.0, @label="", @real=0.00014305600052466616, @stime=0.0, @total=0.0, @utime=0.0>
Run Code Online (Sandbox Code Playgroud)

=>使用sort_by基准进行order查询(在查询时采用更多查询,比普通查询更少的时间): -

> User.all.sort_by(&:name) # …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql activerecord ruby-on-rails ruby-on-rails-4

2
推荐指数
1
解决办法
812
查看次数

无法覆盖门卫中的自定义令牌错误响应

我想重写门卫令牌错误响应主体方法。目前,当我在 url 处传递错误的用户名和密码http://localhost:3000/oauth/token时,它会给出以下错误消息。

对于未经授权的默认门卫响应:

{
    "error": "invalid_grant",
    "error_description": "The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client."
}
Run Code Online (Sandbox Code Playgroud)

但我想要为我的 API 提供不同的错误消息结构。如下所示。

我的预期回应是:

{
    "status_code": 401,
    "message": "Invalid username or password."
    "result": []
}
Run Code Online (Sandbox Code Playgroud)

我遵循这里的官方文档并尝试在下面完全满足我的期望。

尝试自定义响应:

在下面lib/doorkeeper/oauth/error_response.rb

module Doorkeeper
  module OAuth
    class ErrorResponse
      def body
        {
          "status_code": 401,
          "message": "Invalid username or password."
          "result": []
        }
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

门卫配置: …

ruby-on-rails oauth doorkeeper ruby-on-rails-5

2
推荐指数
1
解决办法
2475
查看次数