小编dyl*_*nfm的帖子

理想的红宝石项目结构

我正在概述/澄清ruby(非rails/merb/etc)项目的理想项目结构.我猜它遵循以下几点:

app/
  bin/                  #Files for command-line execution
  lib/
    appname.rb
    appname/            #Classes and so on
  Rakefile              #Running tests
  README
  test,spec,features/   #Whichever means of testing you go for
  appname.gemspec       #If it's a gem
Run Code Online (Sandbox Code Playgroud)

我有什么不对吗?我错过了哪些部分?

ruby project-structure

121
推荐指数
3
解决办法
4万
查看次数

扩展Devise SessionsController以使用JSON进行身份验证

我正在尝试为iPhone应用程序构建rails API.Devise适用于通过Web界面登录,但我需要能够使用REST API创建和销毁会话,我想使用JSON而不必在会话控制器上执行POST并且必须解析HTML并处理重定向.

我以为我可以这样做:

class Api::V1::SessionsController < Devise::SessionsController  
  def create
    super
  end  
  def destroy
    super
  end  
end
Run Code Online (Sandbox Code Playgroud)

在config/routes.rb中我添加了:

namespace :api do
  namespace :v1 do
    resources :sessions, :only => [:create, :destroy]
  end
end
Run Code Online (Sandbox Code Playgroud)

rake路由显示路由设置正确:

   api_v1_sessions POST   /api/v1/sessions(.:format)     {:action=>"create", :controller=>"api/v1/sessions"}
    api_v1_session DELETE /api/v1/sessions/:id(.:format) {:action=>"destroy", :controller=>"api/v1/sessions"}
Run Code Online (Sandbox Code Playgroud)

当我发布到/ user/sessions时,一切正常.我得到一些HTML和302.

现在如果我发布到/ api/v1/sessions我得到:

未知的操作AbstractController :: ActionNotFound

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json'   -X POST http://localhost:3000/api/v1/sessions   -d "{'user' : { 'login' : 'test', 'password' : 'foobar'}}"
Run Code Online (Sandbox Code Playgroud)

ruby authentication ruby-on-rails devise

47
推荐指数
4
解决办法
3万
查看次数

Git忽略C项目的文件

我刚开始学习C(使用Thinking In C),我想知道在C项目的git存储库中我应该忽略哪些文件.

没有任何建议可以太明显 - 我是一个完全的菜鸟.谢谢!

c git

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

Ruby on Rails:hash.each {}问题

这是我的代码:

records_hash = records[:id].inject({}) { |result,h|
  if result.has_key?(h)
    result[h] += 1
  else
    result[h] = 1
  end
  result
}

@test2 = records_hash.each{|key,value| puts "#{key} is #{value}"}
Run Code Online (Sandbox Code Playgroud)

我的输出应该如下所示:

bozo is 3
bubba is 4
bonker is 5
Run Code Online (Sandbox Code Playgroud)

但它在页面(<%= @test2 %>)上呈现如下:

bozo3bubba4bonker5
Run Code Online (Sandbox Code Playgroud)

我尝试过类似块的.each_key和.each-value,它们都返回上面相同的字符串.我在IRB中运行相同的代码,它按预期工作.

我究竟做错了什么?

ruby hash ruby-on-rails

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

使用Ruby on Rails进行高性能RSS/Atom解析

我需要解析成千上万的feed,性能是必不可少的要求.你有什么建议吗?

提前致谢!

ruby ruby-on-rails

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

设计sign_in_and_redirect似乎永远不会起作用

我想,如果用户登录后,它会自动重定向到以前的位置,但这似乎永远不会发生,它总是重定向回根位置.从阅读有关设计的文档看来,这个功能似乎只是起作用.我是以某种方式错误地使用它和/或我如何强制它存储位置和重定向无论如何?

http://rubydoc.info/github/plataformatec/devise/master/Devise/Controllers/Helpers#stored_location_for-instance_method

authentication = UserToken.find_by_provider_and_uid(omniauth['provider'], omniauth['uid'])

if authentication
  flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => omniauth['provider']
  sign_in_and_redirect(:user, authentication.user)
else
Run Code Online (Sandbox Code Playgroud)

redirect ruby-on-rails devise omniauth ruby-on-rails-3

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

如何在rails /活跃商家上使用paypal/ruby​​创建安全的信用卡网关

我正在使用Active Merchant和PayPal沙箱创建商店.它似乎工作正常,但我不认为它甚至是远程安全的.我真的不太了解HTTPS以及如何实现安全连接.

我目前正在通过会话中的信用卡和账单信息(可能不是最聪明的想法).我目前的代码发布在下面.我真的需要帮助我们采取什么方向和步骤,以使这个安全,可用的商店.

 def payment
session[:billing_address] = params[:billing_address] 
 end

 def summary
    @credit_card = params[:credit_card]
    session[:credit_card] = params[:credit_card]
    @billing_address = session[:billing_address]
    @cart = get_cart
    @purchases  = @cart.purchases
    @total = @cart.total
 end

 def finish
     @cart = get_cart
     @total = @cart.total

     credit_card = ActiveMerchant::Billing::CreditCard.new( session[:credit_card] )

     billing_address = session[:billing_address]

     flash[:notice] = credit_card.errors and return unless credit_card.valid?

     gateway = ActiveMerchant::Billing::PaypalGateway.new(:login=>$PAYPAL_LOGIN, :password=>$PAYPAL_PASSWORD)

     res = gateway.authorize(@total, credit_card, :ip=>request.remote_ip, :billing_address=>billing_address)

     if res.success?
        gateway.capture(@total, res.authorization)
        flash[:notice] = "Authorized" 
     else
        flash[:notice] = "Failure: " + res.message.to_s
     end    
  end
Run Code Online (Sandbox Code Playgroud)

security https paypal ruby-on-rails

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

Warden vs Rack :: Auth :: Basic.在Ruby-Framework中进行HTTP-Basic-Auth

我想用Ruby创建一个WebService(Sinatra,Padrino,也许是Ramaze ......还不知道......),但我绝对想要保护它......

它将成为Iphone-App的后端,所以我认为SSL-Secured HTTP-Basic-Auth会很好.

我一直在寻找几个身份验证框架,并遇到了监狱长...似乎有很好的记录,设计是建立在它之上......所以不能那么糟糕......

但是......对我来说似乎有点矫枉过正,因为我需要......

然后我发现了这个Code-Snipplet:

  def protected!
    unless authorized?
      response['WWW-Authenticate'] = %(Basic realm="Testing HTTP Auth")
      throw(:halt, [401, "Not authorized\n"])
    end
  end

  def authorized?
    @auth ||=  Rack::Auth::Basic::Request.new(request.env)
    @auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['admin', 'admin']
  end
Run Code Online (Sandbox Code Playgroud)

看起来我只是不需要超过那个...或者你们中的任何人能提供一个很好的Warden + HTTP-Basic Auth示例吗?或者向我解释使用监狱长的更多好处?

提前致谢!!!:)

authentication rest ruby-on-rails

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

我可以用JSON做什么?

简而言之,我想了解一下我可以用JSON做什么; 它是JavaScript的替代品还是什么?

javascript json

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