Я думаю, что это может быть проще, чем я делаю это ...Извлечение .name из хэше
настоящее время у меня это в моем контроллере (пользователь)
def portfolios
@title = "Portfolios"
@user = User.find_by_permalink(params[:id])
@portfolios = @user.portfolios
@collections = @user.collections.find_all_by_portfolio_id(1)
@collections = User.find_by_permalink(params[:id])
render 'show_portfolios'
end
И это, на мой взгляд:
<% @portfolios.each do |portfolio| %>
<tr>
<td><%= image_tag("portfolioIcon.png", alt: "Portfolio Logo")%></td>
<td><%= portfolio.name %></td><br/>
</tr>
<tr>
<% ([email protected]_all_by_portfolio_id(portfolio).length).each do |collection| %>
<td><%= @user.collections.find_all_by_portfolio_id(portfolio) %></td><br/>
<% end %>
</tr>
<% end %>
Но, похоже, возвращать хэш, который находится в квадратных скобках:
[#<Collection id: 1, user_id: 1, portfolio_id: 1, name: "User-1-Portfolio-1-Collection-1", created_at: "2013-04-20 10:45:46", updated_at: "2013-04-20 10:45:46">]
поэтому я не могу просто поместить имя в конце, чтобы вернуть «User-1-Portfolio-1-Collection-1».
База данных настроена так: Пользователь имеет много портфолио и много коллекций. Портфолио принадлежит Пользователям и имеет множество коллекций через таблицу объединений Коллекция принадлежит Пользователям и имеет много портфелей через таблицу соединений
Надеюсь, это имеет смысл.
Возможно, есть более простой способ извлечения информации, которую я получаю в обычном хэше?
Это не хэш в квадратных скобках, это единственный объект 'Collection' в массиве, представляющий строку, возвращаемую запросом. Объект был отображен 'inspect', чтобы вы могли видеть переменные экземпляра и их значения. –