Actually, I'm not so sure if post creation is passing the validation test either :)
Sorry for being confusing. On Feb 27, 11:09 am, robo <chase.delanguille...@gmail.com> wrote: > Ok so I have a few models that need to interact with each other - > Blog, Post, and User. I'll get their relationships out of the way: > > Blog > has_many :posts > has_and_belongs_to_many :users (by way of a join table, a blog can > have many contributing users) > > Post > belongs_to :blog > belongs_to :user (the author of the post) > > User > has_and_belongs_to_many :blogs (a user can contribute to many blogs) > has_many :posts > > I'm running into a problem when validating posts; I want to ensure > that the logged in user we find in the session is listed as a > contributor to the blog they are trying to post to. I added some > validation to my Post model, that appears to be failing when editing > an existing post. Post creation, curiously, seems to pass the > validation test. > > I should note that @user is a variable set by my ApplicationController > using a before_filter. really sure what's going on here, so any help > is appreciated. I'm guessing the @user set by my app controller > probably isn't accessible by the Post class. > > Anyhow, here's my Post model: > > class Post < ActiveRecord::Base > belongs_to :blog > belongs_to :user > has_many :comments > > validate :user_can_contribute > > private > def user_can_contribute > if @user.nil? > logger.info("@user hasn't been set yet!") > end > > if !blog.users.include?(@user) > errors.add(:user, "You cannot contribute to this blog.") > end > end > end -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.