У вас есть нулевой объект, когда вы этого не ожидали! - PullRequest
0 голосов
/ 02 октября 2009

После этого урока "http://allaboutruby.wordpress.com/2009/08/08/5-minute-project-in-rails/" и я не могу обойти ошибку в теме.

Это происходит, когда я изменяю "app / views / posts / show.html.erb" в соответствии с учебным курсом.

Теперь у меня все работает по-другому (другой учебник), но мне пришлось поместить что-то вроде @users = user.find_all в контроллер сообщений.

Мой вопрос: не изменяя контроллеры, а только добавляя отношения к моделям, вы все равно можете использовать что-то вроде "post.user.name", например, учебник в Quesiton.

Я нуб - но будет ли это как-то связано с таблицей User без user_id? так как, черт возьми, таблица поста может получить ссылку на таблицу пользователя?

Может кто-нибудь сделать этот урок и заставить его работать? Это как-то связано с тем, что я использую RUBY-1.8.6-27, а не последнюю версию 2.x.x?

Я не знаю. Мне нужно разобраться с этим, поскольку он будет использоваться в приложении, которое я хочу сделать.

Ответы [ 2 ]

1 голос
/ 02 октября 2009

Когда вы создали свою миграцию с помощью этой команды:

ruby script/generate migration add_user_id_to_post user_id:integer

Скрипт миграции знает от вашего имени миграции до add a user_id для Post модель user_id:integer - это стандартный код ActiveRecord :: Migration для определения user_id, который является целым числом.

Вы увидите миграцию, сгенерированную со следующим кодом:

class AddUserIdToPost < ActiveRecord::Migration
  def self.up
    add_column :posts, :user_id, :integer
  end

  def self.down
    remove_column :posts, :user_id
  end
end

После того, как вам нужно запустить:

rake db:migrate

Проверьте вашу базу данных, чтобы увидеть, что user_id присутствует в таблице Post. В противном случае post.user.name не будет работать

0 голосов
/ 03 октября 2009

Да - все это сделал.

У меня есть другой пример, работающий все в порядке - думаю, что это может иметь какое-то отношение к пользовательской таблице, не имеющей фактического столбца с именем "id" ... как тот, в котором я работаю.

Следуя этому примеру (учебник) - это не сработает. Ты говоришь, что должен? что-нибудь делать с версией ruby ​​или rails? Я использую Windows - Ruby v 1.8.6 и rails 2.3.4 - с плагином mysql для БД.

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