2009-03-22 2 views
0

Я получил конфигурационный файл/routes.rb так:Rails: добраться до родительского ресурса

 
    map.resources :categories, :shallow => true do |cat| 
    cat.resources :entries, :member => {:yes => :post, :no => :post } 
    end 

Моя цель заключается в использовании, да и нет, как кнопки, которые изменяют свои записи (это похоже на игру, и да и нет ответов на записи).

Я хотел бы, что, когда я нажимаю на да или нет, я не вернусь к категории /: CATEGORY_ID/записи, потому что там, где у меня есть довольно макет и т.д.

Проблема заключается в том, что я получил метод yes из записей /: entry_id Итак, я потерял идентификатор категории, в который входит эта запись, и я не знаю, как получить ссылку на эту категорию.

Я думаю, я могу попробовать, не используя: мелкий параметр, поэтому я получил полный путь, но я, вероятно, собираюсь пойти дальше в hierarqui (у записей могут быть комментарии), и я хочу узнать с этой простой проблемой, как управлять этим ситуация.

ответ

3

Если ваши записи являются подресурсами ваших категорий, то, вероятно, существуют отношения между родителями и дочерними элементами между моделями, не так ли? Если это так, то вы можете использовать:

redirect_to category_entries_path(@entry.category) 

в ваших yes и no методов.

+0

Он отлично работал. Я все еще перегружен количеством рельсов, которые делают в имени программистов. Не знал, что own_to в модели будет создавать @ entry.category Большое спасибо. – Jordi

0

В кнопке, вы можете указать категорию, как так:

link_to "Yes", yes_entry([@category, Entry.new]), :method => :post 

я не уверен, если это работает, хотя, в противном случае вы можете попробовать:

link_to "Yes", yes_entry(Entry.new, :category_id => @category), :method => :post 
0

Вы пробовали resource_controller? Я не работал с: мелким вариантом (и это решение, вероятно, без него), но resource_controller поддерживает какие-то полиморфные ресурсы (у вас могут быть URL-адреса:/entries,/category/3/entries,/whatever/12/entries и т.д). Тогда вы можете создать URL для записей с этим:

<%= link_to 'Entries', collection_path %> 

Но в случае вашего «да» и «нет» методы, вам нужно только добавить:

redirect_to collection_path 

в ответ «да» и «нет».

 Смежные вопросы

  • Нет связанных вопросов^_^