标签: ruby

根据名称获取实例变量的值

一般来说,如何获取对字符串中名称的对象的引用?

更具体地说,我有一个参数名称列表(成员变量 - 动态构建,所以我不能直接引用它们).

每个参数都是一个也有from_s方法的对象.

我想做类似以下的事情(当然这不起作用......):

define_method(:from_s) do | arg |
    @ordered_parameter_names.each do | param |
        instance_eval "field_ref = @#{param}"
        field_ref.from_s(param)
    end
end
Run Code Online (Sandbox Code Playgroud)

ruby metaprogramming

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

单行以递归方式列出Ruby中的目录?

在Ruby中获取目录数组(不包括文件)的最快,最优化,单行方式是什么?

包含文件怎么样?

ruby filesystems recursion

94
推荐指数
5
解决办法
6万
查看次数

要更改ruby脚本中的目录?

我想创建一个新的rails应用程序并为该应用程序启动rails服务器,所有这些都来自ruby脚本.

我的代码看起来像这样:

#!/usr/bin/env ruby
system "rails new my_app"
system "cd my_app"
system "rails server &"
Run Code Online (Sandbox Code Playgroud)

但是,运行"rails server&"时,路径不在my_app文件夹中,而是在父文件夹中.

有没有办法在脚本中更改目录,以便我可以为该新应用程序运行"rails server","rake about"和"rake db:migrate"?

所有的工作周围的工作将不胜感激.

ruby ruby-on-rails

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

如何在Ruby中添加现有哈希

关于key => value在Ruby中为现有的填充哈希添加一对,我正在通过Apress的Beginning Ruby工作,刚刚完成了哈希章节.

我试图找到用哈希实现相同结果的最简单方法,就像对数组一样:

x = [1, 2, 3, 4]
x << 5
p x
Run Code Online (Sandbox Code Playgroud)

ruby hash new-operator

94
推荐指数
4
解决办法
18万
查看次数

有没有办法在Ruby中访问方法参数?

Ruby和ROR的新手并且每天都喜欢它,所以这是我的问题,因为我不知道如何谷歌它(我已经尝试:))

我们有方法

def foo(first_name, last_name, age, sex, is_plumber)
    # some code
    # error happens here
    logger.error "Method has failed, here are all method arguments #{SOMETHING}"    
end
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找方法将所有参数传递给方法,而不列出每一个.因为这是Ruby我假设有一种方式:)如果它是java我会列出它们:)

输出将是:

Method has failed, here are all method arguments {"Mario", "Super", 40, true, true}
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

94
推荐指数
6
解决办法
5万
查看次数

在Ruby中放置私有方法的位置?

大多数博客或教程或书籍都在任何类/模块的底部都有私有方法.这是最好的做法吗?

我发现有必要使用私人方法更方便.例如:

public
def my_method
  # do something
  minion_method
end

private
def minion_method
  # do something
end

public
def next_method
end
Run Code Online (Sandbox Code Playgroud)

这样我发现代码更具可读性,而不是连续上下滚动,这是非常恼人的.

这种方法有什么可怕的错误吗?在底层有私人方法不仅仅是最佳实践和其他东西吗?

ruby conventions

94
推荐指数
8
解决办法
6万
查看次数

何时在Ruby中使用符号而不是字符串?

如果我的脚本中至少有两个相同字符串的实例,我应该使用符号吗?

ruby symbols

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

什么是'分配分支条件大小太高'以及如何解决它?

在我的Rails应用程序中,我Rubocop用来检查问题.今天它给了我一个这样的错误:Assignment Branch Condition size for show is too high.这是我的代码:

def show
  @category = Category.friendly.find(params[:id])
  @categories = Category.all
  @search = @category.products.approved.order(updated_at: :desc).ransack(params[:q])
  @products = @search.result.page(params[:page]).per(50)
  rate
end
Run Code Online (Sandbox Code Playgroud)

这是什么意思,我该如何解决?

ruby ruby-on-rails code-metrics rubocop

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

从命令行提供当前目录

有人可以给我一个提示,如何从命令行用ruby提供当前目录?如果我可以有一些系统范围的配置(例如mime-types)并且只是从每个目录启动它,那就太好了.

ruby command-line

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

Rails控制台:重新加载!没有反映模型文件的变化?可能的原因是什么?

早些时候它工作正常.我一直在玩一点配置.所以我可能在不知不觉中改变了一些配置.

这是environment/development.rb的配置

  config.cache_classes = false

  # Log error messages when you accidentally call methods on nil.
  config.whiny_nils = true

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  config.action_view.debug_rjs             = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  # migration prefix with sequence #s
  config.active_record.timestamped_migrations = false

  #time zone
  config.time_zone …
Run Code Online (Sandbox Code Playgroud)

ruby config ruby-on-rails reload rails-console

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