我是Rails 4的新手,并且不理解在Rails 4中使用secret_key_baseunder config/secrets.yml.你能解释一下这个概念吗?
此外,当我在生产环境中我的工作,我提示设置secret_key有devise.rb,config.secret_key和secret_key_base.但是,我可以使用该rake secret命令生成一个新秘密.
开发和生产环境有什么区别?
secret_key当我secret_key_base每次生成时添加它时,它是如何匹配新生成的?
如何使用其他服务器保护应用程序?
有一个模块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_method和second_method)和2个类方法(first_class_method和second_class_method) - 很明显.
有人说,那
included块将在包含模块的类的上下文中执行.
这究竟是什么意思?意思是,什么时候second_class_method执行这个方法()?
我有以下错误:
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
我是新来的Ruby和我试图找出如何ceil和floor工程,我得到不同的答案时,分数或十进制数,使用(类似于值).以下是我的尝试:
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数字更低.希望有人能就此启发我.谢谢!:)
如何将数字表示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".
我有两个查询,我需要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) 我试图在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) 我只是尝试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
有没有办法在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) 我正在为组织编写rails应用程序.每个用户可能有一个或多个角色,并且只能根据这些角色访问某些控制器操作.
例如,只有管理员可以创建,销毁和更新Users的某些字段.此外,Team每个人都有一个团队负责人,只有团队负责人可以更新有关的某些信息Team(例如,成员列表).但是,首先Admins是指派团队领导者的人.
我的场景的具体细节并不重要,我只希望我描述了有许多不同角色和权限的情况.
我的问题是:使用什么宝石?我的第一个想法是CanCan,但最近一次提交是差不多一年前的事情,并没有提到Rails 4的兼容性.目前有替代方案吗?
ruby ×7
rspec ×2
activeadmin ×1
activerecord ×1
cancan ×1
ceil ×1
devise ×1
faker ×1
floor ×1
math ×1
postgresql ×1
rescue ×1
rubygems ×1
secret-key ×1
sql ×1
string ×1