我正试图像Stripe那样对我的API进行版本测试.下面给出了最新的API版本是2.
/api/users 返回301到 /api/v2/users
/api/v1/users 在版本1返回200个用户索引
/api/v3/users 返回301到 /api/v2/users
/api/asdf/users 返回301到 /api/v2/users
因此,除非指定的版本存在,否则基本上任何未指定版本的内容都会链接到最新版本,然后重定向到它.
这是我到目前为止:
scope 'api', :format => :json do
scope 'v:api_version', :api_version => /[12]/ do
resources :users
end
match '/*path', :to => redirect { |params| "/api/v2/#{params[:path]}" }
end
Run Code Online (Sandbox Code Playgroud) 如果我访问www.example.com,页面上的图像链接到assets.example.com,这是assets.example2.com的CNAME.
即使assets.example2.com没有证书,我也会获得绿色锁,但assets.example.com有吗?
我想知道是否有任何方法可以让Rails网络服务器(瘦)服务于资产管道创建的*.gz文件.据我所知,那些压缩级别比压缩级别更高Rack::Deflater,只能serve_static_assets在rackup文件中使用,而不能在config.middleware.
一个不太理想的解决方案可能是更改默认压缩级别,Zlib即哪些Rack::Deflater引用.它应该只需要gzip一次,然后它去Rack::Cache,然后希望是CDN.
第二个不太理想的解决方案可能是a Rack::Rewrite.
我收到了分段错误.应该which ruby返回/ usr/local/bin吗?
maletor$ rails generate mailer ContactMailer
/Users/maletor/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.4/lib/mysql2/mysql2.bundle: [BUG] **Segmentation fault**
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
Abort trap
maletor$ which rails
/usr/bin/rails
maletor$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [x86_64-darwin10.4.0]
- INSTALLATION DIRECTORY: /Users/maletor/.rvm/gems/ruby-1.9.2-p0
- RUBY EXECUTABLE: /Users/maletor/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
- EXECUTABLE DIRECTORY: /Users/maletor/.rvm/gems/ruby-1.9.2-p0/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-10
- GEM PATHS:
- /Users/maletor/.rvm/gems/ruby-1.9.2-p0
- /Users/maletor/.rvm/gems/ruby-1.9.2-p0@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => false …Run Code Online (Sandbox Code Playgroud) 我正在查询给定两个用户的共同朋友.下面的查询应该在大多数情况下完成,而友谊表应该是不言而喻的,包含user_id和friend_id.
SELECT `users`.* FROM `users`
INNER JOIN `friendships` `a` ON `users`.`id` = `a`.`friend_id`
INNER JOIN `friendships` `b` ON `users`.`id` = `b`.`friend_id`
WHERE `a`.`user_id` = 1 AND `b`.`user_id` = 2
Run Code Online (Sandbox Code Playgroud)
令我困惑的是如何编写这种语义ActiveRecord.使用ActiveRecord,您可以加入关联,但只能加入一次.那么你如何尽可能明白地写这个ActiveRecord呢?
谁能告诉我这些关键序列是什么?我知道如果我这样做cat并键入按键我可以得到它的代码但是如何反转该过程以找出按行首的内容,例如?
bindkey '^[^[[D' backward-word
bindkey '^[^[[C' forward-word
bindkey '^[[5~' up-line-or-history
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
bindkey '^[[6~' down-line-or-history
bindkey '^[[5D' beginning-of-line
bindkey '^[[5C' end-of-line
bindkey '^[[3~' delete-char
bindkey '^?' backward-delete-char
bindkey '^[^N' newtab
bindkey '^[[Z' reverse-menu-complete
Run Code Online (Sandbox Code Playgroud) 我正在使用FactoryGirl创建一个"专业"模型,该模型在code列上具有唯一索引.
当我创建"专业"模型的多个工厂时,我收到此错误:
Failure/Error: Factory(:specialty)
Mysql::Error: Duplicate entry 'AN00' for key 'index_specialties_on_code': INSERT INTO `specialties` (`code`, `name`) VALUES ('AN00', 'Name')
Duplicate entry 'AN00' for key 'index_specialties_on_code'
Run Code Online (Sandbox Code Playgroud)
处理这个问题的正确方法是什么?为什么与模型相关的索引不会被模型所震撼.我正在使用DatabaseCleaner.
这是否会导致Ruby的内存问题.我知道如果大小超过10KB,Open-URI会写入TempFile.但HTTParty会在写入TempFile之前尝试将整个PDF保存到内存中吗?
src = Tempfile.new("file.pdf")
src.binmode
src.write HTTParty.get("large_file.pdf").parsed_response
Run Code Online (Sandbox Code Playgroud) 我有要尝试发布的数据,看起来像{ foo: [[:bar, 1], [:baz, 0]] }。
如何允许使用强参数?我能得到的最接近的是
params.permit(foo: [[]]) 哪个返回 {"foo"=>[]}
我有两种将标记放在地图上的搜索方式。一种搜索基于输入表单中的搜索查询触发,另一种针对moveend事件触发(即“地图移动重做搜索”)。结果数据不一样;前者使用半径,而后者则限制在范围内)。
问题是,对于基于查询的搜索,我想使地图适合返回的标记。因此,我fitBounds()为此使用了内部委派的效果,并将平移动画设置为标记周围的最佳边界。
在动画结束时,它会触发一个moveend事件,触发我的其他类型的搜索并重置我的结果,这是我不希望的行为。
为了变通解决此问题,我可以使用setTimeout和的持续时间作为上的平移选项fitBounds()。这样,我可以关闭事件侦听器moveend,然后fitBounds花费0.25秒,然后花费setTimeout0.25秒(实际上是更长的时间),并通过回调将moveend侦听器添加回去。
这是可行的,但是如果fitBounds或panning本身具有事件或回调,则将更为实用。您能想到更好的解决方案吗?
我正在尝试关联现有记录,同时仍然可以添加新记录.以下不起作用,但非常接近我的需要.如何完成关联现有记录和创建新记录?
has_many :comments, :through => :commentings, :source => :commentable, :source_type => "Comment"
accepts_nested_attributes_for :comments, :allow_destroy => true
def autosave_associated_records_for_comments
comments.each do |comment|
if existing_comment = Comment.find_by_fax_and_name(comment.fax, comment.name)
self.comments.reject! { |hl| hl.fax == existing_comment.fax && hl.name == existing_comment.name }
self.comments << existing_comment
else
self.comments << comment
end
end
end
Run Code Online (Sandbox Code Playgroud)
以下是相关的来源:https://github.com/rails/rails/blob/v3.0.11/activerecord/lib/active_record/autosave_association.rb#L155
在TextMate中有"格式化CSS"和"格式化CSS压缩"这个很棒的选项.vim中似乎不存在此选项.也许它是在一个我不知道的插件中?或者我可能需要以某种方式整合CSS Tidy?