小编And*_*eko的帖子

rails 4中secret_key_base的用途是什么

我是Rails 4的新手,并且不理解在Rails 4中使用secret_key_baseunder config/secrets.yml.你能解释一下这个概念吗?

此外,当我在生产环境中我的工作,我提示设置secret_keydevise.rb,config.secret_keysecret_key_base.但是,我可以使用该rake secret命令生成一个新秘密.

开发和生产环境有什么区别?

secret_key当我secret_key_base每次生成时添加它时,它是如何匹配新生成的?

如何使用其他服务器保护应用程序?

ruby ruby-on-rails devise secret-key ruby-on-rails-4

68
推荐指数
2
解决办法
5万
查看次数

Ruby模块 - 包括do end block

有一个模块MyModule:

module MyModule

  extend ActiveSupport::Concern

  def first_method
  end

  def second_method
  end

  included do
    second_class_method
  end

  module ClassMethods
    def first_class_method
    end

    def second_class_method
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

当某个类include是这个模块时,它将有2个方法暴露为实例方法(first_methodsecond_method)和2个类方法(first_class_methodsecond_class_method) - 很明显.

有人说,那

included 块将在包含模块的类的上下文中执行.

这究竟是什么意思?意思是,什么时候second_class_method执行这个方法()?

ruby

32
推荐指数
2
解决办法
2万
查看次数

在Rails 4中,rescue_from ActionController :: RoutingError

我有以下错误:

ActionController::RoutingError (No route matches [GET] "/images/favicon.ico")
Run Code Online (Sandbox Code Playgroud)

我想为error404页面显示不存在的链接.

我怎样才能做到这一点?

ruby exception-handling ruby-on-rails rescue ruby-on-rails-4

22
推荐指数
2
解决办法
2万
查看次数

Ruby .ceil和.floor

我是新来的Ruby和我试图找出如何ceilfloor工程,我得到不同的答案时,分数或十进制数,使用(类似于值).以下是我的尝试:

puts 8/3.ceil == 2   #=> true
puts 8/3.floor == 2  #=> true
puts 2.67.ceil == 2  #=> false
puts 2.67.floor == 2 #=> true
Run Code Online (Sandbox Code Playgroud)

根据我的理解,ceil应该返回一个更高的数字,并且floor数字更低.希望有人能就此启发我.谢谢!:)

ruby math floor ceil

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

用零填充数字

如何将数字表示user.id为字符串:

  • 00如果user.id在0到9范围内,则填充到左侧

    # => "00#{user.id}"

  • 0如果user.id在10到99范围内,则填充

    # => "0#{user.id}"

  • 没有任何补充

    # => "#{user.id}"

例如,user.id = 1它会产生"001",user.id = 11产生"011",产生,产生,user.id = 111产生"111".

ruby string

21
推荐指数
3
解决办法
1万
查看次数

传递给#or的关系必须在结构上兼容.不兼容的值:[:references]

我有两个查询,我需要or它们之间,即我想要第一个或第二个查询返回的结果.

第一个查询是一个简单的where()获取所有可用项目.

@items = @items.where(available: true)
Run Code Online (Sandbox Code Playgroud)

第二个包括a join()并给出当前用户的项目.

@items =
  @items
  .joins(:orders)
  .where(orders: { user_id: current_user.id})
Run Code Online (Sandbox Code Playgroud)

我尝试以or()各种形式将这些与Rails的方法结合起来,包括:

@items =
  @items
  .joins(:orders)
  .where(orders: { user_id: current_user.id})
  .or(
    @items
    .joins(:orders)
    .where(available: true)
  )
Run Code Online (Sandbox Code Playgroud)

但我一直遇到这个错误,我不知道如何解决它.

Relation passed to #or must be structurally compatible. Incompatible values: [:references]
Run Code Online (Sandbox Code Playgroud)

sql postgresql activerecord ruby-on-rails ruby-on-rails-5

21
推荐指数
3
解决办法
1万
查看次数

NameError:未初始化的常量Faker

我试图在Rails 4中为我的数据库运行一个简单的bundle exec rake db:seed.但是,在运行它时,我得到以下输出:

********-C02MGBVJFD57:myapp ***********$ bundle exec rake db:seed
Your Gemfile lists the gem factory_girl_rails (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of just one of them later.
rake aborted!
NameError: uninitialized constant Faker
/Users/**********/workspace/myapp/db/seeds.rb:16:in `block in <top (required)>'
/Users/**********/workspace/myapp/db/seeds.rb:15:in `times'
/Users/**********/workspace/myapp/db/seeds.rb:15:in `<top (required)>'
/Users/**********/.rvm/gems/ruby-2.1.2@myapp/gems/railties-4.1.4/lib/rails/engine.rb:543:in `load_seed'
/Users/**********/.rvm/gems/ruby-2.1.2@myapp/gems/activerecord-4.1.4/lib/active_record/tasks/database_tasks.rb:184:in `load_seed'
/Users/**********/.rvm/gems/ruby-2.1.2@myapp/gems/activerecord-4.1.4/lib/active_record/railties/databases.rake:173:in `block (2 levels) in <top (required)>'
Tasks: TOP …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails faker ruby-on-rails-4

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

Rails/RSpec:功能规格中没有"旅行"时间助手?

我只是尝试travel在我的一个功能规范中使用Rails的时间助手方法:

scenario 'published_at allows to set a publishing date in the future' do
  magazine_article.update_attribute(:published_at, Time.now + 1.day)
  expect { visit magazine_article_path(magazine_article.magazine_category, magazine_article) }
         .to raise_error(ActiveRecord::RecordNotFound)

  travel 2.days do
    visit magazine_article_path(magazine_article.magazine_category, magazine_article)
    expect(page).to have_content('Super awesome article')
  end
end 
Run Code Online (Sandbox Code Playgroud)

它给了我这个:

NoMethodError:
   undefined method `travel' for #<RSpec::ExampleGroups::MagazineArticles::AsUser::Viewing:0x007f84a7a95640>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

http://api.rubyonrails.org/classes/ActiveSupport/Testing/TimeHelpers.html

rspec ruby-on-rails activesupport ruby-on-rails-4 ruby-on-rails-5

20
推荐指数
1
解决办法
3114
查看次数

ActiveAdmin操作

有没有办法在ActiveAdmin的模型索引页面中指定允许的操作,例如:

index do
  actions :edit
end

index do
  actions only: :edit
end
Run Code Online (Sandbox Code Playgroud)

不工作.什么是正确的语法?

赞赏.

bundle show activeadmin
/home/muichkine/.rvm/gems/ruby-2.1.2/bundler/gems/active_admin-9cfc45330e5a
Run Code Online (Sandbox Code Playgroud)

rubygems ruby-on-rails activeadmin ruby-on-rails-4

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

Rails 4用户角色和权限

我正在为组织编写rails应用程序.每个用户可能有一个或多个角色,并且只能根据这些角色访问某些控制器操作.

例如,只有管理员可以创建,销毁和更新Users的某些字段.此外,Team每个人都有一个团队负责人,只有团队负责人可以更新有关的某些信息Team(例如,成员列表).但是,首先Admins是指派团队领导者的人.

我的场景的具体细节并不重要,我只希望我描述了有许多不同角色和权限的情况.

我的问题是:使用什么宝石?我的第一个想法是CanCan,但最近一次提交是差不多一年前的事情,并没有提到Rails 4的兼容性.目前有替代方案吗?

ruby authorization ruby-on-rails cancan ruby-on-rails-4

18
推荐指数
2
解决办法
2万
查看次数