【发布时间】:2012-02-06 10:57:14
【问题描述】:
对不起,我什至不知道如何问这个问题..所以如果你也能提出建议,我们将不胜感激。
# A. WORKS, but "stockroom" is hardcoded
render partial: association.to_s.singularize + '',
locals: {stockroom: new_object}
# B. WORKS, but uses old syntax
render partial: association.to_s.singularize + '',
locals: {association.to_s.singularize.to_sym => new_object}
# C. does NOT work
render partial: association.to_s.singularize + '',
locals: {association.to_s.singularize.to_sym: new_object}
# D. does NOT work
ass = association.to_s.singularize.to_sym
logger.debug "--- ass: #{ass.inspect} (#{ass.class})"
# => --- ass: :stockroom (Symbol)
render partial: association.to_s.singularize + '', locals: {ass: new_object}
并不是说旧语法是一件坏事,我只是想知道是否有办法使用新语法来做到这一点(甚至通过中介(即 ass))。
【问题讨论】:
-
我的猜测(只是猜测)是否定的;这确实是一种语法技巧,可以将
":"左侧的任何内容转换为符号,即使您希望对其进行评估。