2011-09-29 22 views
0

我有三個不同的模型,將涉及此。我正在嘗試創建屬於所有者的用戶。業主擁有許多合作伙伴,合作伙伴有很多客戶。這個問題和它在這裏問的其他問題有什麼不同,是我不想讓某人查看頁面的源並查看整個客戶列表。目前它正處於開發/測試階段。我最終會將owner_id限制爲硬編碼到@ current_user的owner_id。該所有者用戶只能看到他們自己的合作伙伴和合作夥伴的客戶。我不希望他們看到另一個所有者的合夥人。Ruby on Rails關係降低傾向第二個依賴於第一個

<%= f.input :owner_id, :as => :select, :collection => Owner.find(:all) %> 
<%= f.input :partner_id, :as => :select, :collection => Partner.find(params[:owner_id]) %> 
<%= f.input :client_id, :as => :select, :collection => Client.find(params[:partner_id]) %> 

,我有以上的問題是,由於查找params爲產生一個錯誤:owner_id有沒有價值,是不會找到任何合作伙伴。那麼當我選擇合作伙伴時,如何讓客戶選擇填充客戶列表。同樣,一旦所有者被選中,如何確定如何填充合作伙伴。請記住,一旦我把這件作品畫出來,主人會改變。在推算出來之前沒有任何意義。

如果這是一個基於所選州的城市,我發現了幾個選擇,但還沒有找到合適的選擇。多謝你們!

回答

1

我不認爲你理解(或利用)模型關聯。由於我沒有完全理解你的模型或業務領域,我在這裏做了很多手勢......這聽起來像你想限制選擇框中的選項數量到當前用戶應該選擇的數量能夠看到。

比方說,你有一個Tumblr風格的應用程序。你有很多用戶和許多博客。當前登錄的用戶可以將新項目發佈到他們有權訪問的任何一個博客。在創建新帖子並選擇將其發佈到哪個博客時,我不適合讓我發佈到您的博客,甚至不知道它存在。我們將使用@current_user.blogs而不是Blog.all

<%= semantic_form_for @post do |f| %> 
    <%= f.input :blog, :label => "Which blog?", :as => :select, :collection => @current_user.blogs %> 
    ... 
<% end %> 

我會看到我的博客列表可供選擇,你會看到你的。我認爲這部分回答了你的問題。

問題的其他部分似乎是動態根據在窗體中其他選擇框中所做的選擇來更改選擇框的內容。這是需要用Javascript/AJAX來處理的東西,以及Formtastic的一種超出範圍和堆棧溢出的簡單回答:)

我建議儘量保持這個儘可能簡單版。

相關問題