У меня есть приложение, которое я разрабатывал и которое до сих пор было только одной пользовательской средой. Наконец-то я дошел до того, что мне нужно было добавить многопользовательские возможности, поэтому я следил за рельсовой трансляцией на authlogic, чтобы получить простой логин.
Затем я добавил has_many :items
, accepts_nested_attributes_for :items
и belongs_to :user
к правильным моделям. Затем я удалил базу данных и настройку, а затем перенес ее. Я также добавил столбец user_id
ко всем моим вложенным моделям.
После этого, когда я нажимаю на ссылку "Создать новый элемент", я перехожу на новую страницу и создаю новый элемент. Когда я возвращаюсь на страницу item_index, она больше не отображается. Я могу перейти на localhost/item/1 и посмотреть запись, поэтому я знаю, что она создается, но когда я пытаюсь просмотреть ее в своем item_index.html.erb, она больше не отображается.
Вот основной цикл, который работал до того, как я добавил пользователя. (Он рендерится в таблицу)
<% for item in @items %>
<%= link_to item.name, item %>
<% end %>
Я предполагаю, что петля - это то, что не так, но я не совсем уверен.
Спасибо
edit: вот что происходит в моем методе index в моем контроллере элементов:
def index
@items = Item.search params[:search]
if @items.nil?
@items = Item.all
end
end
У меня есть странная вещь if nil?
, потому что я использую Thinking-sphinx, и иногда он терпел неудачу, если индекс был пуст.
редактировать2:
Если я изменю индекс, чтобы иметь только
def index
@items = Item.all
end
Все появляется. Так что это означает, что это связано с тем, что сфинкс думает, что он возится с моим рендером.
edit3: в стиле мыслящего сфинкса я сделал некоторые вещи, не связанные с этим, и он снова волшебным образом работает.