I have the following helper method:
def parse_potential_followers(params)
t_id = TestSet.where(:test_name => params[:test_set][:test_name]).pluck(:id)[0].to_i
screen_names = params[:potential_followers].first[1].split("\n").reject(&:blank?)
screen_names.each do |s|
potential_follower = PotentialFollower.new(
:screen_name => s,
:test_sets_id => t_id,
:status => 'new',
:slug => generate_slug([t_id.to_s, s])
)
potential_follower.save
end
end
The problem is that when I call this method, the test_sets_id is skipped when data is inserted in the table in the development environment, but not in the production environment. The three other attributes are saved fine.
All the attributes are defined in the potential_followers table.
I also have all the attributes in the potential_follower_params method in the potential_followers_controller.rb:
def potential_follower_params
params.require(:potential_follower).permit(:screen_name, :test_sets_id, :connections, :status,
:slug, :created_at, :updated_at)
end
test_sets_id is defined as an integer in the table. I even tried harcoding the value of t_id:
t_id = 12
But it still would not work in production.
Here's what's in the models/potential_follower.rb:
class PotentialFollower < ActiveRecord::Base
belongs_to :TestSet
end
Here's the method in test_sets_contoller.rb:
def create
@test_set = TestSet.new(test_set_params)
respond_to do |format|
if @test_set.save
parse_potential_followers(params)
format.html { redirect_to @test_set, notice: 'Test set was successfully created.' }
format.json { render :show, status: :created, location: @test_set }
else
format.html { render :new }
format.json { render json: @test_set.errors, status: :unprocessable_entity }
end
end
end
Any ideas?
test_set
table with id of12
or with thetest_name
that you are searching for? – Esquiline