2015-12-25 50 views
1

我有一個儀表板頁面創建模式彈出窗口,在那裏我展示一些圖片和名稱:軌道:從另一個視圖頁

的意見/儀表板/ index.html.haml

- @items.each do |item| 
    = link_to item do 
    = image_tag item.images.try(:first).try(:url,:medium) 
    = item.name 

然後,我有這個單獨的頁面:

的意見/項目/ _quick_view.html.haml

Wher e我想根據儀表板頁面的點擊顯示正確的內容。我想讓這個模式窗口,所以當有人點擊一個項目,它會在這個快速瀏覽頁面中有更多的信息。不知道這是否是正確的做法?另外,如何將這些信息傳遞給快速瀏覽頁面,以便知道哪些內容可以正確顯示?

難道我添加了某種渲染這樣的?

- @items.each do |item| 
    = link_to item do 
    = image_tag item.images.try(:first).try(:url,:medium) 
    = item.name 
    .modal{style: 'display:none;'} 
    = render '/items/quick_view.html.haml', :item => item 

我不知道這是如何工作的。這需要一些方向。

回答

0

如果你不喜歡你的建議,有必要對每個項目的鏈接與相關鏈接模式。像link_to item將不得不產生類似於<a href='#modal1'>...</a>的東西,並且對於每個項目,它將呈現具有適當ID('#modal1','#modal2')的模態。如果你的頁面變大,這可能會很多(每個項目一個模式)。

另一種解決方案是動態加載負載,並且只有一個模式(#detail_view),任何對該項目的點擊都會對某些路由和控制器操作進行AJAX調用,以響應遠程調用內容爲模式。在'#detail_view'模式中注入這些內容。

要實現第二個解決辦法,我建議看看這個another SO Q/A。這是show view的解決方案,但是您可以使用類似的操作爲detail_view操作創建路由並返回@item對象。這裏有很好的解釋。

相關問題