Итак, у меня есть модель вопроса и модель ответа и вопрос has_many Answers (это вопрос с несколькими вариантами выбора).ruby on rails block sytax using &:
Предположим, что вопросы - это коллекция объектов Вопроса.
Для того, чтобы собрать все ответы, я могу сделать это:
questions.collect(&:answers)
два вопроса:
Что именно делает этот синтаксис означает? Разве это распространяется на
questions.collect { |q| q.answers }
или есть что-то еще здесь?
Есть ли способ сделать
questions.collect { |q| q.answers.shuffle }
используя тот же синтаксис?
collect(&:answers.shuffle)
не делает это.
Я не могу найти это в учебниках по рубиновым блокам в Интернете и поиск для него не работает (поисковые системы игнорируют «&:»). Я нашел его в некотором унаследованном коде.
Благодаря
Вы пытались найти переполнение стека с помощью '[ruby] ampersand'? –
Ха! Ты прав. Это теперь один из нескольких обманов :) http://stackoverflow.com/questions/1961030/ruby-ruby-on-rails-ampersand-colon-shortcut – Brian
Возможный дубликат [Что означает map (&: name) в Ruby?] (http://stackoverflow.com/questions/1217088/what-does-mapname-mean-in-ruby) –