From d05622b5cb1c49c304299251065e67b54c804fe3 Mon Sep 17 00:00:00 2001 From: albert Date: Fri, 13 Jan 2012 19:18:09 -0500 Subject: [PATCH] fixes #268 --- app/controllers/pool_elements_controller.rb | 7 ++++++- app/models/pool.rb | 10 ++++++++++ app/models/tag.rb | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/controllers/pool_elements_controller.rb b/app/controllers/pool_elements_controller.rb index dab27bed1..fd55ee27e 100644 --- a/app/controllers/pool_elements_controller.rb +++ b/app/controllers/pool_elements_controller.rb @@ -3,7 +3,12 @@ class PoolElementsController < ApplicationController before_filter :member_only def create - @pool = Pool.find_by_name(params[:pool_name]) || Pool.find(params[:pool_id]) + @pool = Pool.find_by_name(params[:pool_name]) || Pool.find_by_id(params[:pool_id]) + + if @pool.nil? + return + end + @post = Post.find(params[:post_id]) @pool.add!(@post) append_pool_to_session(@pool) diff --git a/app/models/pool.rb b/app/models/pool.rb index 13adcae8b..dac2b3c85 100644 --- a/app/models/pool.rb +++ b/app/models/pool.rb @@ -42,6 +42,16 @@ class Pool < ActiveRecord::Base post_ids.gsub(/\s{2,}/, " ").strip end + def self.find_by_name(name) + if name =~ /^\d+$/ + where("id = ?", name.to_i).first + elsif name + where("name = ?", normalize_name(name)).first + else + nil + end + end + def initialize_creator self.creator_id = CurrentUser.id end diff --git a/app/models/tag.rb b/app/models/tag.rb index 3803d19e3..4c667a328 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -79,7 +79,7 @@ class Tag < ActiveRecord::Base module NameMethods module ClassMethods def normalize_name(name) - name.downcase.tr(" ", "_").gsub(/\A[-~]+/, "") + name.downcase.tr(" ", "_").gsub(/\A[-~]+/, "").gsub(/\*/, "") end def find_or_create_by_name(name, options = {})