Writing a breakable loop? If it gets a match it should stop.

You could just do:
  def allowed_access?(url)
    Right.find(:all).detect {|r| url_for r == url}
  end

That would return nil if no match, otherwise it returns a right object.
So this would work:
  if allowed_access("url string")
    #do something
  end