小编Rya*_*yan的帖子

Socket.IO身份验证

我试图在Node.js中使用Socket.IO,并试图让服务器为每个Socket.IO客户端提供一个标识.由于套接字代码超出了http服务器代码的范围,因此它无法轻松访问发送的请求信息,因此我假设它需要在连接期间发送.什么是最好的方法

1)通过Socket.IO获取有关谁连接的信息

2)验证他们说自己是谁(我目前正在使用Express,如果这让事情变得更容易)

authentication node.js express socket.io

115
推荐指数
4
解决办法
6万
查看次数

在Chef中部署私人仓库:我的部署密钥出错了什么?

我正在使用厨师来部署rails/node应用程序.当我从公共github存储库部署时,所有部署都很好.我想从私有github存储库部署,但我很难这样做.这是我目前正在做的事情

cd ~/.ssh                        # change directory to my .ssh directory
ssh-keygen -f'deploy_key' -N ''  # create a deploy_key key pair without a passphrase
cat deploy_key.pub | pbcopy      # copy the public key into my clipboard

-go to https://github.com/HairyMezican/PrivateRepoName/admin/keys
-click on 'Add another deploy key'
-type 'deploy_key' into 'Title' field
- ?V (paste command) into 'Key' field
-click 'Add Key'

tr "\n" "#" < deploy_key | sed 's/#/\\n/g' | pbcopy      #copy the private key into my clipboard, except with all of …
Run Code Online (Sandbox Code Playgroud)

github ssh-keys chef-infra

10
推荐指数
1
解决办法
7168
查看次数

有没有人有任何管理Rails 3中的多态嵌套资源的技巧?

在config/routes.rb中:

resources :posts do
  resources :comments
end

resources :pictures do
  resources :comments
end
Run Code Online (Sandbox Code Playgroud)

我想允许更多的事情被评论.

我目前正在使用mongoid(mongomapper并不像我想的那样与Rails 3兼容),而注释是一个嵌入式资源(mongoid还不能处理多态关系资源),这意味着我确实需要父资源为了找到评论.

有没有优雅的方法来处理以下一些问题:

在我的控制器中,我需要在找到评论之前找到父母:

if params[:post_id]
  parent = Post.find(params[:post_id]
else if params[:picture_id]
  parent = Picture.find(params[:picture_id]
end
Run Code Online (Sandbox Code Playgroud)

如果我开始添加更多可评论的内容,那将会变得混乱.

url_for([comment.parent, comment])不起作用,所以我将不得不在我的Comment模型中定义一些东西,但我认为我还需要在Comment模型中定义索引路径以及可能的编辑和新路由定义.

随着我的进一步发展,我可能会遇到更多问题.

我无法想象我是第一个尝试解决这个问题的人,是否有任何解决方案可以使其更易于管理?

polymorphism nested-resources mongoid ruby-on-rails-3

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

loadfile,require和import之间有什么区别

似乎有多种方法可以从另一个文件访问一个文件.为什么我会选择一种方法而不是另一种?

local a = loadfile('foo.lua')()
local b = require 'foo.lua'
local c = import 'foo.lua'
Run Code Online (Sandbox Code Playgroud)

lua

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

使用ActiveMerchant自定义Paypal Express的评论页面

我正在使用ActiveMerchant让我的rails应用程序访问Paypal的Express Checkout.我想在审核页面上包含订单详细信息,如下所述:https://cms.paypal.com/us/cgi-bin/?cmd = _render-content&content_ID = developer/e_howto_api_ECCustomizing

可以这样做吗?

目前,我的控制器代码如下所示:

def paypal
  #currently, options is unused, I'm not sure where to send this info
  options = { 
              :L_NAME0=>"Tickets", 
              :L_QTY0=>@payment.quantity, 
              :L_DESC0=>"Tickets for #{@payment.event_name}",
              :L_AMT0=>@payment.unit_price
            }

  #the actual code that gets used
  setup_response = gateway.setup_purchase(@payment.amount,
    :ip=> request.remote_ip,
    :return_url=> url_for(:action=>:confirm, :id=>@payment.id, :only_path=>false),
    :cancel_return_url => url_for(:action=>:show, :id=>@payment.id, :only_path=>false)
  )
  redirect_to gateway.redirect_url_for(setup_response.token)
end
Run Code Online (Sandbox Code Playgroud)

如果我想做的事情是可能的,我需要改变什么?

paypal ruby-on-rails activemerchant

6
推荐指数
2
解决办法
4233
查看次数

如何向Devise添加策略

我正在尝试添加一个非常简单的策略来设计,它似乎并没有起作用.这是我尝试使用的代码

#config/initializers/devise.rb
Devise.setup do |config|
  config.orm = :mongo_mapper

  config.warden do |manager|
    manager.strategies.add(:auto_login_strategy) do 
      def valid?
        params[:auto_login]
      end

      def authenticate!
        u = User.find(:first)
        u.nil? ? fail!("No created users") : success!(u)
      end
    end
    manager.default_strategies(:scope=>:user).unshift :auto_login_strategy
  end  
end
Run Code Online (Sandbox Code Playgroud)

代码应该检查params的'auto_login'参数,如果存在,找到它可以的第一个​​用户并登录.我完全跳过安全措施,只是让一个基本的测试用例工作.当我尝试登录到具有before_filter authenticate_user!(即localhost:3000/test?auto_login=true)的控制器时,它无法登录并重定向到登录页面.我究竟做错了什么?

ruby ruby-on-rails devise

5
推荐指数
1
解决办法
4608
查看次数

在expressjs渲染中干燥布局本地

我在nodejs中使用express,并试图让我的视图呈现干燥.在我的布局中,我有以下内容(我正在使用玉)

body
  nav.login
    -if(currentUser)
      ="logged in information"
    -else
      ="logged out information"
  !=body
Run Code Online (Sandbox Code Playgroud)

问题是,每次渲染时,我都需要拥有

res.render('anything.jade',{
  locals: {
    currentUser: req.session.currentUser,
    /*all of my other locals*/
  }
});
Run Code Online (Sandbox Code Playgroud)

如果我必须将任何其他本地添加到布局中,那么必须完成所有渲染调用并添加它,然后执行相同的操作似乎很痛苦.是否有一些方法可以避免重新键入'currentUser'到我渲染的各地的本地人

dry node.js express pug

5
推荐指数
1
解决办法
1551
查看次数