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#showSQLite3::SQLException: no such column: taggings.post_id: SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."post_id" = ?Showing /home/nadia/blog/app/views/posts/show.html.erb where line #8 raised:
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 endThis 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 endpost.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 endPlease 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.
--To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/ab6b8df7-5eed-423a-aab1-42468426e532%40googlegroups.com.
You received this message because you are subscribed to a topic in the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rubyonrails-talk/GQwj6Mrx2CE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
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+unsubscribe@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/CAOWWFs0ZRabxQYrNJYMS8Gmh8D%3Dwt4HXV5MhSZkkoruCESdmKQ%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment