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.

Reply via email to