小编Dan*_*May的帖子

在Ruby中提取最后一段URI的最佳方法

给定URI字符串如:

http://www.somesite.com/abc
http://www.somesite.com/alpha/beta/abc
http://www.somesite.com/alpha/abc
Run Code Online (Sandbox Code Playgroud)

Ruby中最优雅的方法是抓住abc这些URI的末尾?

ruby string uri string-parsing

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

Cloudflare上的Heroku自定义域:重定向太多

目标

在此输入图像描述

  • 之前在其他Heroku应用程序上成功完成此操作,使用以下步骤
  • 我错过了什么?

我做了什么

  • essbap.org通过Godaddy 购买.
  • 导入DNS到Cloudflare.
  • 在Godaddy插入Cloudflare名称服务器.
  • 从Godaddy删除了区域记录.

CloudFlare的:

  • 插入的CNAME记录rapid指向ebcc-rrn.herokuapp.com
  • 在Heroku:添加自定义域rapid.essbap.orgebcc-rrn.herokuapp.com

Heroku的:

heroku domains:add rapid.essbap.org

=== ebcc-rrn Heroku Domain
ebcc-rrn.herokuapp.com

=== ebcc-rrn Custom Domains
Domain Name       DNS Target
----------------  ----------------------
rapid.essbap.org  ebcc-rrn.herokuapp.com 

$ host rapid.essbap.org 
rapid.essbap.org has address 104.27.162.137 
rapid.essbap.org has address 104.27.163.137
Run Code Online (Sandbox Code Playgroud)

Cloudflare设置

在此输入图像描述

刚刚添加:

跑步卷曲

当我curl与另一个我认识有效的Heroku自定义域应用程序运行时,它看起来像:

$ curl -I some.custom_app.com
HTTP/1.1 301 Moved Permanently
Location: https://some.custom_app.com/

# since I'm using force_ssl …
Run Code Online (Sandbox Code Playgroud)

dns ruby-on-rails heroku cloudflare

8
推荐指数
3
解决办法
2449
查看次数

防止React捕获制表符

我有一个输入字段.我希望React检查是否在此字段中按下了选项卡.如果是,则处理该字段的内容(例如ajax调用).

getInitialState: function() {
  return { name: "" }; 
},

handleChangeName: function(e) {
  this.setState({name: e.target.value});
},

handleKeyUp: function(e) {
  if (e.keyCode == 9) {
    e.preventDefault();
    alert("Execute ajax call after tab pressed");
  }
},

<input type="text" value={this.state.name} onChange={this.handleChangeName}
   onKeyDown={this.handleKeyUp} />
Run Code Online (Sandbox Code Playgroud)

问题:

截取Tab键并执行后续代码,但将制表符插入输入文本字段.我该如何防止这种情况发生?

我曾尝试各种组合preventDefault,stopPropagation,stopImmediatePropagation.我可以得到一个结果,没有进一步的字符被插入到输入文本字段中,但后来没有执行后续代码.

我错过了什么?

javascript jquery reactjs react-jsx

8
推荐指数
2
解决办法
5363
查看次数

用于重新索引所有mongodb集合的命令

重新索引MongoDB集合的参考通常是每个集合:

db.mycollection.reIndex();
Run Code Online (Sandbox Code Playgroud)

我想一次重新索引一些收藏品.一个接一个可能会有点累人.

reIndex();在所有集合中发布的适当命令是什么?

indexing mongodb

7
推荐指数
2
解决办法
5706
查看次数

有条件地测试是否在HAML模板中添加类的简洁方法

可能重复:
如果条件在Haml中为真,则追加类(使用Rails)

我正在使用一个模板,允许您将列表项标记为current(使用class=current),在导航栏中突出显示它.

在HAML中,这看起来像:

%li.current
  Menu item A
%li
  Menu item B
%li
  Menu item C
Run Code Online (Sandbox Code Playgroud)

我在Sinatra视图中有这个代码,并希望以编程方式添加class=current,取决于参数到视图.

我该如何以最好的方式做到这一点?

目前,我这样做:

  - if section == "pages"
    %li.current
      %a{:href => "#pages"} Pages
  - else
    %li
      %a{:href => "#pages"} Pages
Run Code Online (Sandbox Code Playgroud)

这感觉太冗长了.

ruby haml views sinatra

6
推荐指数
1
解决办法
5770
查看次数

用三元运算符表示条件HAML

试图用一种更简洁的方式在HAML和Ruby中表达这个条件,也许用三元运算符:

- if @page.nil?
  %br (nothing yet)
- else
  %br #{@page.name}
Run Code Online (Sandbox Code Playgroud)

(根据Neat方式寻找类似的方法来有条件地测试是否在HAML模板中添加类)

你的帮助将不胜感激:)

ruby haml sinatra

6
推荐指数
1
解决办法
6202
查看次数

使用OS X Sublime Text编辑docker容器文件

刚开始在OS X上使用docker进行开发.vim很方便,但我想回到Sublime Text 2.

如何启动OS X上的Sublime Text 2并让它编辑我的docker容器上的文件?

在OS X上使用最新的docker ver 1.0.VM通过安装boot2docker.

macos sublimetext2 docker

6
推荐指数
1
解决办法
2107
查看次数

如何检测哪个React组件触发onKeyUp事件?

假设我们有一个onKeyUp处理程序:

handleKeyUp: function(e) {
  /* handle stuff */
},
Run Code Online (Sandbox Code Playgroud)

我们有几个输入组件,这两个组件都可以触发处理程序:

<input type="text" ref="login" onKeyUp={this.handleKeyUp} />
...
<input type="text" ref="pwd" onKeyUp={this.handleKeyUp} />
Run Code Online (Sandbox Code Playgroud)

如何使它成为处理程序可以检测是否onKeyUplogin或触发pwd

一个场景是我检测到选项卡按下pwd然后我继续尝试保存文本字段(但不是我选中的位置login).

我已经尝试了解细节,e.target但无法弄清楚如何引用原始组件.

更新

对不起,一定不要想清楚.是的,e.target是对原始组件的引用.我希望能够获得ref价值.但是我不需要参考,我可以从中获得价值e.target.value.

javascript reactjs

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

如何嵌套devise_invitable路由以邀请用户访问特定项目

问题

我在项目管理网络应用程序上使用devisedevise_invitablegems.我成功邀请新用户加入网络应用.

但我需要的是邀请新用户参与特定项目,而无法弄清楚如何做到这一点.我需要将项目ID作为路径的一部分,以便我可以正确连接控制器代码.

上下文

相关routes.rb部分如下:

devise_for :users, :controllers => { :invitations => "invitations" }
Run Code Online (Sandbox Code Playgroud)

所以:

  • users/invitation/new 适用于新的邀请.
  • 我自己的invitations_controller.rb覆盖默认InvitationsController
  • 我有:projects一个我正在使用的资源,例如

     resources :projects do
       resources :milestones, :task ... etc
     end
    
    Run Code Online (Sandbox Code Playgroud)

(我认为)我希望做出像这样的工作:

users/invitation/projects/4f3423d34323/new
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise

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

如何在查询中使用数组字段匹配mongoid文档?

我正在尝试将文档与Mongoid/Mongodb匹配,其中在查询中使用数组字段.我一直在努力,$elemMatch但似乎无法得到它.

上下文

  • 一个Project可以有admin,member,reader用户
  • 这些用户由Project(HABTM)引用
  • 我希望能够找到以下项目:
    • 用户A是 admin
    • 用户B是adminmember
    • ..等..

给出ProjectRails控制台的文档:

[#<Project _id: 4f44355a9f5b7f385a000003, 
  _type: nil, name: "Project ABC", 
  desc: "some description", 
  admin_ids: 
    [BSON::ObjectId('123')], 
  member_ids: 
    [BSON::ObjectId('456'),
    BSON::ObjectId('789')], 
  reader_ids: []
>]
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

@projects = Project.any_of({:admin_ids => [current_user.id]}, 
                           {:member_ids => [current_user.id]}).entries
Run Code Online (Sandbox Code Playgroud)

它匹配current_user.id跨越要么admin_ids并且member_ids 只要有只有在任一数组的一个值.根据上面的代码:

  • 尝试匹配用户'123'给出正确的结果
  • 试图匹配用户'456'没有结果(不正确)

$ elemMatch

根据研究,我认为我应该使用$elemMatch但缺少一些东西.

根据Project上面的文档代码:

// test …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails mongodb mongoid

4
推荐指数
2
解决办法
9352
查看次数