Форум программистов, компьютерный форум, киберфорум
Ruby on Rails
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для sire
26 / 26 / 1
Регистрация: 01.05.2011
Сообщений: 143

Привязка моделей через актив

02.03.2013, 18:02. Показов 1301. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеем две модели 'user' и 'post' банально

в таблице

users(id, name...)
posts(id title, postbody, user_id)

в моделях

post--->
Code
1
belongs_to :user
user-->
Code
1
 has many :comments
в views\users\show.html
Code
1
<%= link_to @post.user.name, @post.user %>
в результате ошибка
Code
1
undefined method `name' for nil:NilClass
насколько я понимаю рельсы просто тупо игнорируют свое предназначение, значение из user(id) просто не копируется в post(user_is)

что делать? как уговорить рельсы?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2013, 18:02
Ответы с готовыми решениями:

Связи 3 моделей
Доброе время суток, коллеги. Возникла задача, решение которой не могу найти уже много часов. ...

Acts_as_taggable_on для нескольких моделей
Всем добрый день! Пользуюсь данным гемом. Как сделать привязку к одной модели проблем не...

Связь моделей
Приветствую всех, возник вопрос. Создаю первую модель с 2мя полями. Какого типо должно быть...

6
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
02.03.2013, 18:30
1) Модель Post, но has many :comments
не говоря уже о том, что has many следует писать как has_many

2) Где код, в котором присваивается значение переменной @post ?
0
 Аватар для sire
26 / 26 / 1
Регистрация: 01.05.2011
Сообщений: 143
02.03.2013, 20:49  [ТС]
Цитата Сообщение от arni Посмотреть сообщение
1) Модель Post, но has many :comments
не говоря уже о том, что has many следует писать как has_many
Это понятно, оно так и есть в рукописях
скопировал с другоиво файла.

user--
has_many : posts
Цитата Сообщение от arni Посмотреть сообщение
2) Где код, в котором присваивается значение переменной @post ?
А вот с этого места поподробней пожалуйста, что за код? Оно ведь должно автоматом, так сказать схватывать на лету... или я чего то упустил?

Добавлено через 1 час 52 минуты
вот это?
Code
1
@post = current_user.posts.build(params[:post])
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
02.03.2013, 21:18
Учитывая, что ошибку вы поймали на экшене show контроллера UsersController, то и ищите присваивание @post в методе show
0
 Аватар для sire
26 / 26 / 1
Регистрация: 01.05.2011
Сообщений: 143
02.03.2013, 21:42  [ТС]
@post в Create , show это я про файл. Выключил, включил-работает, теперь боюсь выключать
0
 Аватар для MpaKus
227 / 225 / 23
Регистрация: 30.01.2013
Сообщений: 720
03.03.2013, 18:24
Ruby
1
@post = current_user.posts.build(params[:post])
current_user это кто?

Ruby
1
@post = Post.find( params[:post_id] )
примерно так, только с вашей логикой приложения вам нужно в контроллере через модель найти @post а потом уже отображать @post, и еще проверить есть ли точно связь user <-> post может вы там user_id не записали

+ для отлова ошибок рекомендую поставить gem 'better_errors'
1
 Аватар для sire
26 / 26 / 1
Регистрация: 01.05.2011
Сообщений: 143
04.03.2013, 03:51  [ТС]
current_user идет встроенный в девайсе текущий пользователь



попробую поставить better_errors, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2013, 03:51
Помогаю со студенческими работами здесь

Изменение имен моделей в Active admin и меню
Здравствуйте, у меня есть админ панель с моделями company, admin_user, city ect. В админке они...

Загрузка обьектов моделей и их зависимостей в контроллере
Добрый день. Обычно в контроллере я пишу @posts = Post.all а на странице пишу...

RoR, связь моделей User и Post
Здравствуйте, нужна ваша помощь. Есть модель Post title:string decr:text status:string, модель User...

Привязка тэгов к постам
пока учусь, не пинайте сильно. Задача сделать теги к постам. В проекте ничего кроме модели Post &amp;...

Devise и привязки таблиц
У меня есть две таблицы Article и Comment и User сгенерированый девайсом, вот модели class Article...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru