Ruby on Rails, создайте переменную экземпляра из свойства другой переменной экземпляра - PullRequest
2 голосов
/ 20 июня 2011

Я думаю, что это простой вопрос, но я не могу обернуться вокруг него, чтобы решить его. Я хочу создать переменную экземпляра из свойства другой переменной экземпляра. Например:

@posts = Post.find(:all, :conditions => ['day > ?', Date.today], :order => 'day')

Я хочу получить другую переменную экземпляра, которая содержит все даты из @posts. Есть ли способ быстро получить его без необходимости создания помощника / функции? Спасибо!

Ответы [ 2 ]

3 голосов
/ 20 июня 2011
@posts.map(&:day)

, что является сокращением для

@posts.map do |post|
  post.day
end

Результатом является массив значений каждого post.day

0 голосов
/ 20 июня 2011

То, что есть у Уэйна, уместно. Я предпочитаю собирать вместо карты, но они эквивалентны.

@dates = @posts.collect{|post| post.day}.uniq

Обратите внимание, uniq в конце выдаст вам уникальные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...