小编Sev*_*rin的帖子

TypeError:没有将Symbol隐式转换为Integer

尝试从哈希中改变值时遇到一个奇怪的问题.我有以下设置:

myHash = {
  company_name:"MyCompany", 
  street:"Mainstreet", 
  postcode:"1234", 
  city:"MyCity", 
  free_seats:"3"
}

def cleanup string
  string.titleize
end

def format
  output = Hash.new
  myHash.each do |item|
    item[:company_name] = cleanup(item[:company_name])
    item[:street] = cleanup(item[:street])
    output << item
  end
end
Run Code Online (Sandbox Code Playgroud)

当我执行这段代码时,我得到:"TypeError:没有将Symbol隐式转换为Integer",尽管item [:company_name]的输出是预期的字符串.我究竟做错了什么?

ruby ruby-on-rails

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

在Rails 4中检测用户代理 - 读取HTTP标头

我刚刚从PHP切换到Ruby on Rails,并想知道是否有办法检测客户端设备/用户代理(读取HTTP头),以便根据它获得的请求提供不同版本的站点.在PHP中,我一直在使用Mobile Detect这样做.一般的想法是仅提供每个特定版本所需的文件.这就是为什么客户端方法不那么有效.

有没有办法用Ruby 2.0.0和Rails 4.0.0做类似的事情?

也许有一个宝石来处理这样的案件?

ruby user-agent ruby-on-rails http-headers ruby-on-rails-4

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

jQuery serialize将所有空格转换为加号

目前,无论我在哪里使用序列化,我必须像这样使用它:

.serialize().replace(/\+/g,'%20');
Run Code Online (Sandbox Code Playgroud)

否则表格数据中的任何空格都将被转换为+.是否有可以将其设为默认值的设置.

jquery serialization space

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

Ruby 2.1.0/2.1.1/2.1.2中不支持调试器gem

我刚刚将我的RVM Ruby安装升级到2.1.0版,并在遇到以下错误时尝试捆绑安装:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
Ruby version 2.1.0 is not supported.
*** extconf.rb failed ***
Run Code Online (Sandbox Code Playgroud)

错误当然是不言自明的,但我想知道是否有办法让Debugger gem与最新版本的Ruby一起工作?

ruby ruby-on-rails rvm ruby-2.1

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

为什么strip不会删除前导空格?

我尝试strip了字符串的前导空格:

" Bagsværd".strip # => " Bagsværd"
Run Code Online (Sandbox Code Playgroud)

我希望它会返回"Bagsværd".

ruby strip ruby-2.0

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

无法执行Laravel工匠命令

我刚刚安装了最新版本的Laravel并尝试从我的Git Bash运行以下命令:

php artisan migrate:make create_users_table --table=users --create
Run Code Online (Sandbox Code Playgroud)

这会触发以下错误:

Could not open input file: artisan
Run Code Online (Sandbox Code Playgroud)

我尝试了很多我在这个网站上找到的东西,但似乎没什么用.有关如何使其工作的任何建议?

php bash laravel laravel-4

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

Ruby 2.4升级后 - 尝试加载gem'uglifier'时出错(Bundler :: GemRequireError)

我刚刚将我的应用程序升级为使用Ruby 2.4.0,在捆绑过程中没有任何错误.但是,当我尝试启动我的服务器时,出现以下错误:

There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)
Gem Load Error is: wrong argument type Class (expected Module)
Run Code Online (Sandbox Code Playgroud)

我在这个网站的其他答案中发现你需要添加gem 'therubyracer'到你的Gemfile中,但是自从创建我的应用程序以来我已经有了这个.

最新版本的NodeJS也安装在我的机器上.

有没有其他人遇到此错误,知道如何解决它?

Gemfile中的uglifier配置: gem 'uglifier', '~> 3.0.4'

完整堆栈跟踪:

/home/severin/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:51: warning: constant ::Fixnum is deprecated
/home/severin/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:52: warning: constant ::Bignum is deprecated
/home/severin/.rvm/gems/ruby-2.4.0/gems/therubyracer-0.12.2/lib/v8/conversion.rb:21: warning: constant ::Fixnum is deprecated
/home/severin/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/runtime.rb:94:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)
Gem Load Error is: wrong argument …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails uglifier ruby-2.4

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

如何在Rails 6中要求自定义JS文件

我目前正在尝试将Rails 6.0.0.rc1的默认javascript文件夹从app/assets/javascript移到app/javascript。该application.js文件现在位于中app/javascript/packs。现在,我想添加几个js文件,但是由于某种原因,它们没有被导入,并且我找不到关于如何在Rails 6中完成此操作的任何文档。我尝试了一些方法:

  1. custom_js在下创建一个新文件夹app/javascript/packs,将所有我的js文件放在其中,然后将添加require "custom_js"application.js

  2. 复制下我所有的js文件app/javascript/channels(这应该是默认包括在内,因为application.jsrequire("channels"))。

  3. 添加require_tree .application.js,这是以前的方法。

如何在Rails 6应用程序中加载自己的js文件?

ruby-on-rails ruby-on-rails-6

13
推荐指数
2
解决办法
3062
查看次数

找到数组元素

我有一个阵列

@words = Word.find_all_by_lesson_id(params[:id]) - @user.words
Run Code Online (Sandbox Code Playgroud)

并希望通过word_id找到一个元素,例如

@current_word = @words[params[:id2].to_i]
Run Code Online (Sandbox Code Playgroud)

这里 params[:id2]words.id

当然这是错误的,因为数组索引不一样words.id,所以我怎么能正确呢?

要么

如果我想从中排除一些记录,你能告诉我如何使用该模型吗?

ruby ruby-on-rails

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

Ruby on Rails已经使用或保留了名称?

我正在尝试使用以下命令在rails中创建新模型:

rails new Education
Run Code Online (Sandbox Code Playgroud)

运行它时会返回以下错误:

名称"Education"已经在您的应用程序中使用或由Ruby on Rails保留.请选择替代方案并再次运行此生成器.

由于我刚刚创建了一个新的app并且只有一个其他模型,因此该应用程序中没有使用该名称,我很难想到为什么Rails会保留这样的名字的原因?

有关此错误来自何处以及如何解决此问题的任何想法?

(我已经尝试将名称更改为其他名称并且按预期工作.由于名称确实符合其目的,我不想更改其名称,除非没有其他方法!)

我使用Ruby 2.0.0与Rails 4.0.0和PostgreSQL

ruby ruby-on-rails ruby-2.0 ruby-on-rails-4

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