Heroku was acting up on a problem that I didn’t encounter on a developing environment. Apparently, when you create an attribute on a model, it does not come with internally usable setter for that attribute. Here is the explanation for problem I had.
I have a model called Topic. A Topic has a column called last_post_id. In
topics_controller, I had to use setter method for last_post_id to assign it a value. See the line
@topic.last_post_id = Post.count + 1
def create @forum = Forum.find(params[:forum_id]) @topic = @forum.topics.build(params[:topic]) @topic.last_post_id = Post.count + 1 if @topic.save flash[:success] = "Success!" redirect_to topic_posts_path(@topic) else render 'new' end end
I thought that a setter and an accessor should be automatically available once you create an attribute of a model, but on Heroku, this doesn’t work.
So I had to make accessor and setter for
last_post_id available in
class Topic < ActiveRecord::Base ... attr_accessible :last_post_id ... end