Я пытаюсь создать ассоциацию User-Infos, где у меня есть информация о пользователе.Ruby on Rails - получение данных ассоциации
Я пытаюсь вызвать информацию о пользователе в форме индекса от пользователей.
Позвонив <%= user.infos %>
на моем index.html.erb (Пользователи) он возвращает мне все ДАННЫЕ из таблицы Infos так:
[#<Info id: 2, name: "Thales Miguel", date: "1989-07-14", area: "An\xC3\xA1lise de Sistemas", comment: "Analista j\xC3\xBAnior de sistemas.", user_id: 1, created_at: "2012-01-16 15:54:29", updated_at: "2012-01-16 15:54:29">]
Я предположил, что, делая <%= user.infos.comment %>
было бы вернуть мне «комментарий» от этого пользователя, но все, что я получаю, это ошибка:
undefined method `comment' for #<ActiveRecord::Relation:0x3b8ebe8>
Что я делаю неправильно?
infos_controller:
class InfosController < ApplicationController
def create
@user = User.find(params[:user_id])
@info = @user.infos.create(params[:info])
redirect_to user_path(@user)
end
def destroy
@user = User.find(params[:user_id])
@info = @user.infos.find(params[:id])
@info.destroy
redirect_to user_path(@user)
end
def new
@user = User.new
@user.build_info
end
end
Информация о модели:
class Info < ActiveRecord::Base
belongs_to :user
end
пользователя модель:
class User < ActiveRecord::Base
validates :login, :presence => true
validates :password, :presence => true,
:length => {:minimum => 5}
has_many :infos, :dependent => :destroy
end
И как мне это? – ThalesMiguel
Ну, если вы знаете, что в этом случае есть только один (true), вызовите 'user.infos.first' или' user.infos.last' или 'user.infos [0]'. Независимо от того, что вам больше всего нравится, вырывать из массива только один объект. Google «ruby array», чтобы найти рубированную документацию по классу массива. – Matt
Это не выглядит «обычным» ... Каков наилучший способ сделать то, что я хочу? Как поместить в объекты? Вы ДЕЙСТВИТЕЛЬНО помогаете мне. СПАСИБО! – ThalesMiguel