开发者

Help with rails content filtering

Im creat开发者_JAVA百科ing my own blog managing app in rails (for experimental purposes).... What would the best way to get this done? I have posts and categories. I want to have a dropdown of categories for the user to select one when they create a new post. Now, each user will have different privileges so not all categories should appear for all users.... Right now Im at the point where I can create posts and choose which category I want... I havent added any filter per user support.... please help me on where should I go now??


First you will need to implement authentication and authorization. There are many good Rails tutorials on these subjects so I won't go into more detail here.

At this point you will have models for User, Post, and Category. You need a list per-user of authorized categories. A naive model:

class User < ActiveRecord::Base
  has_and_belongs_to_many :categories
end

But that is misleading, because a user isn't actually "in" any categories. You probably want something like a join model like so:

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


To start with I would give Users a has_many categories relationship(Which you could turn into its own model object at some point if this idea gets more complicated..or now if it already makes sense) and then assuming you already have log in functionality you can ask the logged in user for its categories and populate the drop down appropriately.

If this is a security issue rather than just convenience then you will need to validate the chosen category is in the users categories when the form is submitted back to the server.

If you don't already have logins I believe there are several rails plug-ins that attempt to help you get this functionality quickly.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜