It is belongs_to :post ----------- not posts On Thursday, 13 February 2014 12:27:48 UTC+5:30, Nadia Vu wrote: > > 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/ab6b8df7-5eed-423a-aab1-42468426e532%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.