Hi there, I'm very new to RoR please be kind.

I wasn't sure where to go but I was hoping I could find help here after 
days of hair pulling. Stackoverflow was not successful. 

I have followed the Official Beginners Guide to ROR and made a blog.

I wanted to take it further and add a tagging system to the blog. Im 
getting errors and I don't have enough knowledge of ruby to determine what 
is causing them. Any thoughts/help would be really appreciated.

So this is the error 
ActiveRecord::StatementInvalid in Posts#show

Showing */home/nadia/blog/app/views/posts/show.html.erb* where line *#8*
 raised:
SQLite3::SQLException: no such column: taggings.post_id: SELECT "tags".* 
FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" 
WHERE "taggings"."post_id" = ?

Extracted source (around line *#8*):

 
 6<p>
 7Tags:
 8<% @post.tags.each do |tag| %>
 9<%= link_to tag.name, tag_path(tag) %>
10<% end %>
11</p>
 

 

 

And this a small chunk of the 

post_controller: 

def new
 27       @post = Post.new
 28    end
 29    def create
 30       @post = Post.new(post_params)
 31 
 32         if @post.save
 33             redirect_to action: :show, id: @post.id
 34          else
 35             render 'new'
 36          end
 37    end
 38 
 39    def destroy
 40        @post = Post.find(params[:id])
 41        @post.destroy
 42 
 43     redirect_to action: :index
 44     end

This is my tag_controller


  1 class TagsController < ApplicationController
  2 
  3     def show
  4       @tag = Tag.find(params[:id])
  5 end~                                                                        
              

my tag.rb

  1 class Tag < ActiveRecord::Base
  2   has_many :taggings
  3   has_many :posts, through: :taggings
  4 
  5 end 

post.rb

  1 class Post < ActiveRecord::Base
  2 
  3     has_many :comments, dependent: :destroy
  4     has_many :taggings
  5     has_many :tags, through: :taggings
  6     validates :title,
  7             presence: true,
  8                length: { minimum: 5 }
  9 
 10   def tag_list
 11    self.tags.collect do |tag|
 12       tag.name
 13   end.join(", ")
 14   end
 15   def tag_list=(tags_string)
 16     tag_names = tags_string.split(",").collect{|s| s.strip.downcase}.uniq
 17     new_or_found_tags = tag_names.collect { |name| 
Tag.find_or_create_by(name: name) }
 18     self.tags = new_or_found_tags
 19   end
 20 end~       

and my posts_helper

  1 module PostsHelper
  2   def post_params
  3     params.require(:post).permit(:title, :body, :tag_list)
  4   end
  5 end

Please let me know if I can add any more code that you would need to see

Please please help. I really need to get out of this little rut. And any 
comments would be appreciated.

 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/acf3168c-759c-4879-ae1d-a241f264baa1%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to