我正在使用 Ruby on Rails 使用 collection_select
标签编写 Ajax 请求表单,如下所示:
<%= collection_select("Jobs", "clearance", @allClearances, "clearance", "clearance", {:prompt => "Select a Clearance"} )%>
然后,Ruby 使用 id = "Jobs_clearance"
和 name = "Jobs[clearance]"
我想将参数发送到我的 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/