Commit 0abd1add362f9e11098ad6b649ca2fc5bebde841
Exists in
master
and in
1 other branch
Merge branch 'ruby-1.9.3-upgrade'
Showing
4 changed files
with
9 additions
and
11 deletions
Show diff stats
app/controllers/choices_controller.rb
| ... | ... | @@ -45,7 +45,7 @@ class ChoicesController < InheritedResources::Base |
| 45 | 45 | |
| 46 | 46 | visitor = current_user.default_visitor |
| 47 | 47 | if visitor_identifier |
| 48 | - visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier) | |
| 48 | + visitor = Visitor.find_or_create_by_identifier_and_site_id(visitor_identifier, current_user.id) | |
| 49 | 49 | end |
| 50 | 50 | params[:choice].merge!(:creator => visitor) |
| 51 | 51 | |
| ... | ... | @@ -68,7 +68,7 @@ class ChoicesController < InheritedResources::Base |
| 68 | 68 | |
| 69 | 69 | end |
| 70 | 70 | if visitor_identifier = params[:visitor_identifier] |
| 71 | - visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier) | |
| 71 | + visitor = Visitor.find_or_create_by_identifier_and_site_id(visitor_identifier, current_user.id) | |
| 72 | 72 | flag_params.merge!({:visitor_id => visitor.id}) |
| 73 | 73 | end |
| 74 | 74 | respond_to do |format| | ... | ... |
app/models/question.rb
| ... | ... | @@ -183,7 +183,7 @@ class Question < ActiveRecord::Base |
| 183 | 183 | if params[:with_prompt] |
| 184 | 184 | |
| 185 | 185 | if params[:with_appearance] && visitor_identifier.present? |
| 186 | - visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier) | |
| 186 | + visitor = Visitor.find_or_create_by_identifier_and_site_id(visitor_identifier, current_user.id) | |
| 187 | 187 | |
| 188 | 188 | last_appearance = get_first_unanswered_appearance(visitor) |
| 189 | 189 | |
| ... | ... | @@ -237,7 +237,7 @@ class Question < ActiveRecord::Base |
| 237 | 237 | end |
| 238 | 238 | |
| 239 | 239 | if params[:with_visitor_stats] |
| 240 | - visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier) | |
| 240 | + visitor = Visitor.find_or_create_by_identifier_and_site_id(visitor_identifier, current_user.id) | |
| 241 | 241 | result.merge!(:visitor_votes => Vote.find_without_default_scope(:all, :conditions => {:voter_id => visitor, :question_id => self.id}).length) |
| 242 | 242 | result.merge!(:visitor_ideas => visitor.choices.count) |
| 243 | 243 | end | ... | ... |
app/models/user.rb
| ... | ... | @@ -10,12 +10,12 @@ class User < ActiveRecord::Base |
| 10 | 10 | |
| 11 | 11 | def create_question(visitor_identifier, question_params) |
| 12 | 12 | logger.info "the question_params are #{question_params.inspect}" |
| 13 | - visitor = visitors.find_or_create_by_identifier(visitor_identifier) | |
| 13 | + visitor = Visitor.find_or_create_by_identifier_and_site_id(visitor_identifier, self.id) | |
| 14 | 14 | question = visitor.questions.create(question_params.merge(:site => self)) |
| 15 | 15 | end |
| 16 | 16 | |
| 17 | 17 | def create_choice(visitor_identifier, question, choice_params = {}) |
| 18 | - visitor = visitors.find_or_create_by_identifier(visitor_identifier) | |
| 18 | + visitor = Visitor.find_or_create_by_identifier_and_site_id(visitor_identifier, self.id) | |
| 19 | 19 | raise "Question not found" if question.nil? |
| 20 | 20 | |
| 21 | 21 | #TODO Does this serve a purpose? |
| ... | ... | @@ -35,7 +35,7 @@ class User < ActiveRecord::Base |
| 35 | 35 | if visitor_identifier.nil? |
| 36 | 36 | visitor = default_visitor |
| 37 | 37 | else |
| 38 | - visitor = visitors.find_or_create_by_identifier(visitor_identifier) | |
| 38 | + visitor = Visitor.find_or_create_by_identifier_and_site_id(visitor_identifier, self.id) | |
| 39 | 39 | end |
| 40 | 40 | visitor.vote_for!(options) |
| 41 | 41 | end |
| ... | ... | @@ -50,7 +50,7 @@ class User < ActiveRecord::Base |
| 50 | 50 | if visitor_identifier.nil? |
| 51 | 51 | visitor = default_visitor |
| 52 | 52 | else |
| 53 | - visitor = visitors.find_or_create_by_identifier(visitor_identifier) | |
| 53 | + visitor = Visitor.find_or_create_by_identifier_and_site_id(visitor_identifier, self.id) | |
| 54 | 54 | end |
| 55 | 55 | visitor.skip!(options) |
| 56 | 56 | end | ... | ... |
spec/controllers/choices_controller_spec.rb
| ... | ... | @@ -69,9 +69,7 @@ describe ChoicesController do |
| 69 | 69 | |
| 70 | 70 | it "adds visitor_id params to flag if sent" do |
| 71 | 71 | @visitor_identifier = "somelongunique32charstring" |
| 72 | - visitor_list = [mock_visitor] | |
| 73 | - @user.stub!(:visitors).and_return(visitor_list) | |
| 74 | - visitor_list.should_receive(:find_or_create_by_identifier).with(@visitor_identifier).and_return(mock_visitor) | |
| 72 | + Visitor.should_receive(:find_or_create_by_identifier_and_site_id).with(@visitor_identifier, @user.id).and_return(mock_visitor) | |
| 75 | 73 | |
| 76 | 74 | Flag.should_receive(:create!).with({:choice_id => 123, :question_id => 37, :site_id => @user.id, :explanation => "This is offensive", :visitor_id => mock_visitor.id}) |
| 77 | 75 | ... | ... |