【发布时间】:2015-02-26 02:22:20
【问题描述】:
一个练习说:
创建三个名为 person1、person2 和 person3 的散列,其中第一个 和
:first和:last键下的姓氏。然后创建一个参数 哈希使得params[:father]是person1,params[:mother]是person2,params[:child]是 person3。验证,例如,params[:father][:first]具有正确的值。
我做到了
person1 = {first: "Thom", last: "Bekker"}
person2 = {first: "Kathy", last: "Bekker"}
person2 = {first: "Anessa", last: "Bekker"}
然后是 Rails 中的 params 哈希
params = {}
params[:father] = person1
params[:mother] = person2
params[:child] = person3
现在我可以像这样询问父亲、母亲或孩子的名字或姓氏
params[:father][:first] 给我"Thom"。
是什么让params[:father][:first][:last] 返回错误?有没有办法让"Thom Bekker"返回?
我无法检查我想出的方法是否正确,有没有更好的方法来做这个练习?
symbol: 优于 symbol => 有什么原因吗?
【问题讨论】:
-
社区吹毛求疵,尝试在每个帖子中坚持一个问题或对您的问题进行编号,以便我可以确保回答所有问题。 :)
-
请在每个帖子中提出一个问题。
-
是的,SO 严格执行只问一个问题的限制。但是,您可以发布一个单独的问题,“
symbol:是否比symbol =>更好?”,在这种情况下,大多数响应者可能会说选择只是个人喜好问题,尽管有人可能会争辩说前者首选Code Golf。 -
仅供参考:
TypeError: no implicit conversion of Symbol into Integer是由尝试使用:last索引到params[:father][:first]引起的。使用 Integer 仍然不会做你想做的事,但至少它不会引发异常。 :)