Tag: ruby on rails

如何查看infinit子条目的导航?

我有一个名为Category的简单模型。 该模型有三个字段: name:string , parent_id:integer和cause id ! parent_id是一个自引用关联: has_many :children, :class_name => ‘Category’, :foreign_key => ‘parent_id’ belongs_to :parent, :class_name => ‘Category’, :foreign_key => ‘parent_id’ 所以每个类别都可以有子类别,并且开启和开启,……这不是数据库中的问题,但是当涉及到视图时我会感到困惑! 我不知道如何循环通过每个类别的children和那些儿童,…

Ruby on Rails方法控制器中的模拟

我正在尝试在我的一个rails控制器(在这种情况下,Instagram.get_access_token)中模拟对外部API的方法调用,我遇到了一些麻烦。 如上所述,代码仍在调用真正的Instagram.get_access_token方法。 我怎么让控制器使用我的简单模拟? sessions_controller.rb: class SessionsController < ApplicationController require 'instagram' include ApplicationHelper def auth_callback response = Instagram.get_access_token(params[:code], redirect_uri: auth_callback_url) # end end sessions_controller_spec.rb: require ‘spec_helper’ require ‘ostruct’ describe SessionsController do describe “GET #auth_callback” do context “when there is an existing user” do let(:response) { OpenStruct.new(access_token: “good_access_token”) } it “parses an access_token from the get response” […]

RABL的JSON输出不符合标准吗? 它可以?

所以我有一个非常简单的rabl视图,它将支持xml和json(curr.rabl)的输出: collection @currencies => “currencies” attributes :code, :name 我的rabl配置: Rabl.configure do |config| config.include_json_root = false config.include_child_root = false config.xml_options = { :skip_types => true, :camelize => :lower } config.include_xml_root = false end rabl为xml和json提供的输出: XML: AFN Afghan Afghani AFA Afghanistan Afghani JSON: { currencies: [ { code: “AFN”, name: “Afghan Afghani” }, { code: “AFA”, name: […]

Rails ArgumentError(缺少必需:bucket选项)修复不起作用?

我的Rails应用程序托管在Heroku上,但我需要让Paperclip在本地工作,以便我可以在测试中上传照片。 我真的很接近,但我坚持“缺少必需:桶选项”错误。 我尝试在环境文件中移动设置,以及添加带有AWS凭据的config / application.yml文件,但没有骰子。 这是我在development.rb中的配置(在production.rb中看起来相同): config.paperclip_defaults = { :storage => :s3, :s3_credentials => { :bucket => ENV[‘S3_BUCKET_NAME’], :access_key_id => ENV[‘AWS_ACCESS_KEY_ID’], :secret_access_key => ENV[‘AWS_SECRET_ACCESS_KEY’] } } 我试过移动:bucket属性在s3_credentials之外,但它没有改变任何东西。 Application.yml看起来像这样: AWS_ACCESS_KEY_ID=”xxxxxxxxxxxxxxxxx” AWS_SECRET_ACCESS_KEY=”xxxxxxxxxxxxxxxxxxxx” S3_BUCKET_NAME=”xxxxxx” 我还安装了dot-env gem并将s3.env文件添加到我的应用程序的索引中,该索引包含与上面相同的凭据,但即使这样也没有用。 也没有将我的Paperclip配置添加到我的模型中的has_attached_file中。 我该怎么办??

ActiveRecord对子集或记录的计算

我有一个带有points属性的Game模型,我想计算前20个得分的总和。 我可以采取积分并让ruby计算总和,如: Game.order(‘points desc’).limit(20).pluck(:points).sum 但我很好奇是否有一种直接的方法让AR产生一个SQL聚合计算来实现同样的目的。 以下天真的尝试不起作用: Game.sum(:points, order: ‘points desc’, limit: 20) SELECT SUM(`games`.`points`) FROM `games` 谢谢

从Rails(表单)向Javascript发送数据

我在Rails中存储了一些数据,然后我从Javascript访问。 (我正在使用gon gem这样做)。 当我在控制器中对字符串值(对于gon)进行硬编码时,它工作正常,我可以从javascript访问这些数据: #set in rails, available in JS gon.stuff = { “1” => “one stuff\n print ‘hi’.. “, “2” => “two stuff\n print ‘by’ “} 但是,当我通过Rails表单提交数据(到Post的’stuff’列)时,它最终会“过度字符串化”,因此它在Javascript中显示为一个完整的字符串: post.stuff text_area: { “1” => “stuff about one\n more stuff.. “, “2” => “two stuff\n more stuff”} 在rails中设置数据: gon.stuff = @post.stuff JS数据最终为完整字符串: “{ “1” => “stuff about […]

使用rails_admin gem使用roll自己的身份validation

如果您没有使用设备,如何使用rails_admin gem实现身份validation,例如您已经推出了自己的身份validation?

如何在Savon中生成重复的xml元素?

soapUI在它构建的请求XML中的许多地方生成此注释Zero or more repetitions 。 这是XML请求的一部分。 ? ? cid:1220950351678 我使用Savon 2.2.0与外部服务进行通信。 Ruby hashes需要唯一的密钥。 我尝试以格式传递一组哈希 attachments: [{attachment: {file_name: “foo1”, file_extension: “bar1″, file_contents:”binary_encoded_content”}}, {attachment: {file_name: “foo2”, file_extension: “bar2”, file_contents: “binary_encoded_content”}}] 但在这种情况下,Savon只在数组上执行to_s 。 我怎样才能做到这一点?

如何使用RSpec测试ThinkingSphinx

我在模型中有一个类方法,它调用thinking_sphinx的search()方法。 我需要检查这个类方法。 我想在我的rspec测试用例中启动,索引或停止sphinx。 我正在尝试这段代码。 before(:all) do ThinkingSphinx::Test.start end after(:all) do ThinkingSphinx::Test.stop end 在我触发搜索查询之前,在每个测试用例中使用此代码 ThinkingSphinx::Test.index 但是在我触发搜索查询后,它仍然给出了空结果,尽管测试数据库中存在完全匹配。 如果您在think_sphinx中使用rspec,请引导我使用代码示例

从域发送请求到特定Rails引擎

我在Rackspace VPS上运行了一个rails应用程序。 堆栈是rails3 + unicorn + nginx + mysql。 有一个主域使用proxy_pass将流量直接发送到unicorn套接字。 我开发了一种安装在/digital下的新引擎。 现在,人们可以通过http://primarydomain.com/digital与该引擎进行交互。 我想托管一个新的域名,直接将请求转发到/digital ; 不是根引擎。 因此,例如,以下请求将产生等效结果: http://primarydomain.com/digital/splash http://alternatedomain.com/splash 在完美的世界中,引擎将是一个单独的应用程序。 我想表现得好像单独的域是一个单独的应用程序,虽然它真的是一个挂载的引擎。 这是routes.rb样子: Company::Application.routes.draw do root :to => ‘spree/home#splash’ ActiveAdmin.routes(self) mount Core::Engine, :at => ‘/’ mount Another::Engine, :at => ‘/digital’ end 我需要什么rails + nginx配置来实现这个function?