Articles of ruby

使用ruby解析字符串路径名

我有一个类似于的路径字符串: /some/long/path/filename.extension 我需要在ruby中解析“filename”部分

发布Rails 3

有人知道Rails 3什么时候发布? 试图在网上找到信息 – 但我发现没什么用处……

如何在Rails 5 API中呈现文件?

我有一个用React编写的单页面应用程序和Ruby on Rails后端(API模式)。 Rails也提供静态文件。 我将Rails路由器指向public/index.html ,因此我的SPA可以使用react-router管理自己的路由。 这是通常的做法,以便使直接链接和刷新工作。 的routes.rb match ‘*all’, to: ‘application#index’, via: [:get] application_controller.rb class ApplicationController < ActionController::API def index render file: 'public/index.html' end end 问题是这在API模式下不起作用。 这只是一个空洞的回应。 如果我将父类更改为ActionController::Base一切都按预期工作。 但我不想inheritance全class的膨胀,我需要纤薄的API版本。 我尝试添加ActionController::Renderers::All和AbstractController::Rendering但没有成功。

“Rake spec”在大多数测试中失败,但“rails s”在Diaspora源上工作正常

我有克隆的Diaspora来源,我有一个工作的本地吊舱似乎顺利运行。 但是当我运行$ rake spec一些初始测试通过,然后所有这些都开始失败。 此外,我发现有趣的是,每次运行rake spec时它们都会在不同的点上失败。 他们都失败了,错误: An error occurred in an after hook ActiveRecord::StatementInvalid: PG::ConnectionBad: PQsocket() can’t get socket descriptor: ROLLBACK occurred at /home/darshan/.rvm/gems/ruby-2.0.0-p353@diaspora/gems/activerecord-3.2.16/lib/active_record/connection_adapters/postgresql_adapter.rb:650:in `async_exec’ Postgres的日志说: could not receive data from client: Connection reset by peer unexpected EOF on client connection

Rails 3:显示表单的validation错误(不保存ActiveRecord模型)

如果这是一个非常普遍和/或荒谬的问题,请道歉; 我发誓我已多次阅读文档,并且所有内容似乎都专注于ActiveRecord,以至于他们已经离开了除了创建或编辑模型数据之外的其他forms的路径。 例如,带有输入的表单可控制某些统计信息的提取和显示。 rails为validation此表单的用户输入提供了什么,不会调用save在任何记录上? 像: :email必须是电子邮件地址 :num_products必须是正整数 :gender必须是“M”或“F”之一 :temperature必须在-10到120之间 等等(大多数Web框架中标准的东西)…… Rails中有什么东西可以让我执行这个任意validation,还有一些查看帮助器来显示错误列表,或者是一切都与ActiveRecord相结合? 如果我在文档中忽略了这一点,请道歉,但这并没有真正涵盖它,至少就疲惫的眼睛所能说的那样。 划伤头 感谢Rob的回答,这就是我想出的。 我创建了一个实用程序类(恰当地命名为Validator ),它只是嵌入到我的控制器中,用于任何需要它的东西。 module MyApp class Validator include ActiveModel::Validations include ActiveModel::Conversion extend ActiveModel::Naming def initialize(attributes = {}) super attributes.each { |n, v| send(“#{n}=”, v) if respond_to?(“#{n}=”) } end end end 例如,现在在控制器中,只需定义一个内联类: class LoginController < ApplicationController class AuthenticationValidator “E-mail is a required field” […]

我可以使用Selenium IDE生成Cucumber / Capybara步骤吗?

我已经安装了Selenium IDE(Firefox插件)和Capybara(gem)。 我现在正在我的rails应用程序中从Cucumber / Capybara步骤(@javascript)驾驶Selenium。 问题是: 我可以将Selenium IDE步骤导出为Cucumber / Capybara步骤吗? 在Selenium IDE选项>格式中我只能看到Ruby(Test :: Unit)和RSpec,但是拥有Capybara格式也很棒 。 谢谢。

在Rails 4中保存嵌套模型

有点像Rails的新东西,有点像。 其中一个模型依赖于has_many / belongs_to关联中的另一个。 基本上,在我的应用程序上创建“发布”时,用户还可以附加“图像”。 理想情况下,这是两个独立的模型。 当用户选择照片时,一些JavaScript会将其上传到Cloudinary,并且返回的数据(ID,宽度,高度等)将被JSON字符串化并设置在隐藏字段上。 # The HTML = f.hidden_field :images, :multiple => true, :class => “image-data” # Set our image data on the hidden field to be parsed by the server $(“.image-data”).val JSON.stringify(images) 当然,这种关系存在于我的Post模型中 has_many :images, :dependent => :destroy accepts_nested_attributes_for :images 和我的图像模型 belongs_to :post 我丢失的地方是如何处理Post控制器的创建方法中的序列化图像数据? 简单地解析JSON并保存它不会在保存时创建带有数据的Image模型(并且感觉不对): params[:post][:images] = JSON.parse(params[:post][:images]) 所有这些基本上都达到了以下参数: {“post”: {“title”: […]

覆盖类和实例方法的method_missing?

我正在尝试编写一个通用模块,将dynamic_missing模式应用于我的一些Rails模型中。 这些模型具有类方法和实例方法。 虽然我可以相当直接地为类案例编写一个模块: module ClassVersion extend ActiveSupport::Concern module ClassMethods def method_missing(meth, *args, &block) if meth.to_s =~ /^(.+)_async$/ Async::handle_async self, $1, *args, &block else super meth, *args, &block end end # Logic for this method MUST match that of the detection in method_missing def respond_to_missing?(method_name, include_private = false) Async::async?(method_name) || super end end end 或实例案例: module […]

rake db:migrate在通过RVM升级ruby 2.2.2到2.2.3之后不起作用

我最近使用RVM从Ruby 2.2.2升级到2.2.3。 这在我的开发环境中弄乱了一些东西但是由于有用的错误消息我到目前为止可以处理它。 现在我想向我的数据库添加一些迁移并遇到此错误: $ rake db:migrate /Users/howard/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval’: /Users/howard/.rvm/rubies/ruby-2.2.3/bin/rake:4: syntax error, unexpected tSTRING_BEG, expecting keyword_do or ‘{‘ or ‘(‘ (SyntaxError) exec “$bindir/ruby” -x “$0” “$@” ^ from /Users/howard/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `’ 非常感谢任何帮助。 我以为RVM会阻止这样的事情发生吗? 我使用最新版本的OS X,Ruby和Rails。 非常感谢提前!

将数组值发送到ruby中的sql查询?

我正在努力解决看似ruby的语义问题。 我正在编写一个从表单中获取可变数量的参数并创建Postgresql查询的方法。 def self.search(params) counter = 0 query = “” params.each do |key,value| if key =~ /^field[0-9]+$/ query << "name LIKE ? OR " counter += 1 end end query = query[0..-4] #remove extra OR and spacing from last params_list = [] (1..counter).each do |i| field = "" field << '"%#{params[:field' field << i.to_s field […]