ruby-on-rails - 如何覆盖 ruby​​ 中的 [] 括号?

标签 ruby-on-rails ruby select escaping

我正在使用 Ruby on Rails 使用 collection_select 标签编写 Ajax 请求表单,如下所示:

<%= collection_select("Jobs", "clearance", @allClearances, "clearance", "clearance", {:prompt => "Select a Clearance"} )%>

然后,Ruby 使用 id = "Jobs_clearance"name = "Jobs[clearance]"

构建一个 HTML 选择标签

我想将参数发送到我的 Controller ,如下所示:

class JobsController < ApplicationController
  def foo
    @clearance = params[:Jobs[clearance]]
  end

不幸的是,Ruby 只读取 ":Jobs" 作为符号而不是 ":Jobs[clearance]"
有没有办法逃避 [] 的?反斜杠不起作用。

最佳答案

kmorris 解决了你的问题(很好),但我想回答你的问题: 您可以覆盖 [] 和 []= 运算符,因为它们是方法(就像几乎所有东西一样),但是您应该仔细考虑您在做什么,因为您可以破坏很多东西。

class AntiArray < Array

  def [](ind)
    self.fetch(-ind)
  end

end

y = AntiArray.new([1,2,3,4])

y[1]

=> 4

关于ruby-on-rails - 如何覆盖 ruby​​ 中的 [] 括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/971076/

相关文章:

ruby-on-rails - 使 Redis 服务器在 Digital Ocean 上安全

ruby-on-rails - Rails 方式的复杂模型

mysql - 如何从选择中选择最低值

javascript - 在 IE 中选择中的 onclick 不起作用

ruby-on-rails - 在构建数组之前检查变量是否存在

ruby-on-rails - 成功的 heroku 运行 rake db :migrate but columns don't seem to work

ruby - 如何将jekyll安装到Docker镜像?

ruby - 为什么 Ruby 的 select 不返回套接字?

jquery - post ajax 请求参数有时会以错误的格式发送到 Rails

python - RubyPython 无法在 OS X Lion 上导入 nltk