2009-11-03 60 views
0

我創建了我自己的博客管理應用程序在rails(爲實驗目的)....什麼是最好的方式來完成這件事? 我有帖子和類別。 我想要讓用戶在創建新帖子時選擇一個類別的下拉列表。 現在,每個用戶將有不同的權限,所以不應該爲所有用戶顯示所有類別... 現在我在我可以創建帖子,並選擇我想要的類別...我沒有添加任何用戶過濾器支持.... 請幫我關於我應該去哪裏?幫助與rails內容過濾

回答

0

開始我會給用戶一個has_many類別關係(如果這個想法變得更復雜,你可以變成它自己的模型對象..或者現在如果它已經有意義),然後假設你已經有了登錄功能,您可以向登錄用戶詢問其類別並適當填充下拉列表。

如果這是一個安全問題,而不僅僅是方便,那麼當表單被提交回服務器時,您將需要驗證所選類別在用戶類別中。

如果您還沒有登錄,我相信有幾個rails插件可以幫助您快速獲得此功能。

1

首先你需要實現認證和授權。關於這些主題有很多好的Rails教程,所以我不會在這裏詳細介紹。

此時您將擁有用戶,帖子和類別的模型。您需要授權類別的每個用戶列表。一個天真的模型:

class User < ActiveRecord::Base 
    has_and_belongs_to_many :categories 
end 

但這是誤導,因爲用戶實際上不是「在」任何類別。你可能想要像加入模型這樣的東西:

class UserCategoryAuthorization < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :category 
    // More fields here; possibly: 
    // belongs_to :authorized_by, :class_name => 'User' 
end 

class User < ActiveRecord::Base 
    has_many :user_category_authorizations 
    has_many :authorized_categories, 
      :through => :user_category_authorizations, 
      :source => :category 
end