Heroku STI Проблема - PullRequest
       6

Heroku STI Проблема

0 голосов
/ 02 января 2011

Я впервые работаю с Single Table Inheritance, и это был большой опыт, пока я не перенес приложение в Heroku.У меня есть модель User (и таблица со столбцом типа), модель Hauler, которая наследуется от класса User, и модель Generator, которая принадлежит Hauler (и таблица со столбцом hauler_id).Вот сокращенный код:

#hauler.rb model
class Hauler < User
  has_many :generators
end

#generator.rb model
class Generator < ActiveRecord::Base
 attr_accessible :name, :hauler_id
 belongs_to :hauler
end

#sessions_helper.rb
...
def hauler?
 current_user.type==Hauler
 if current_user.type==Hauler
  @generator = current_user.generators
 end
end

#home.html.erb
<% if hauler? %>
 <% unless @generator.nil? || @generator.emtpy? %>
  <ul>
  <% @generator.each do |g| %>
  <li><%= g.name %></li>
  <% end %>
  </ul>
 <% end %>
<% end %>

Если пользователь с типом = hauler вошел в систему, список его генераторов должен отображаться на его домашней странице.Это работает на моей локальной машине, но не на Heroku.Я немного поработал с кодом и определил, что проблема в файле session_helper, но я не уверен, как заставить его работать.Запуск от Heroku, ничего не содержится в <%, если перевозчик?%> отображается.Просто пусто.

1 Ответ

0 голосов
/ 03 января 2011

Еще через час или около того я решил свою проблему. По-видимому, у Rails проблемы с доступом к столбцу типа для методов. Вместо этого код должен выглядеть примерно так:

def hauler?
 current_user.class.name=="Hauler"
end
...