Guest User

Untitled

a guest
Jan 4th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.80 KB | None | 0 0
  1. ## error when user with id=2 goes to show action for user 1
  2.  
  3. Started GET "/users/1" for 127.0.0.1 at 2011-04-23 01:55:56 -0700
  4. Processing by UsersController#show as HTML
  5. Parameters: {"id"=>"1"}
  6. User Load (1.0ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 1) LIMIT 1
  7. Post Load (1.0ms) SELECT "posts".* FROM "posts" WHERE ("posts".user_id = 1) ORDER BY posts.created_at DESC LIMIT 10 OFFSET 0
  8. User Load (1.3ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 2) LIMIT 1
  9. Relationship Load (0.2ms) SELECT "relationships".* FROM "relationships" WHERE ("relationships".follower_id = 2) AND ("relationships"."followed_id" = 1) LIMIT 1
  10. Rendered users/_follow.html.erb (5.9ms)
  11. Rendered users/_follow_form.html.erb (74.3ms)
  12. SQL (0.3ms) SELECT COUNT(*) AS count_id FROM (SELECT 1 FROM "posts" WHERE ("posts".user_id = 1)) AS subquery
  13. Appreciation Load (0.2ms) SELECT "appreciations".* FROM "appreciations" WHERE ("appreciations".liker_id = 2) AND ("appreciations"."liked_id" IS NULL) LIMIT 1
  14. Appreciation Load (0.2ms) SELECT "appreciations".* FROM "appreciations" WHERE ("appreciations".liker_id = 2) AND ("appreciations"."liked_id" = 1) LIMIT 1
  15. Rendered users/_unlike.html.erb (36.6ms)
  16. Rendered users/_like_form.html.erb (106.9ms)
  17. Rendered posts/_post.html.erb (111.0ms)
  18. Rendered users/show.html.erb within layouts/application (205.6ms)
  19. Completed in 336ms
  20.  
  21. ActionView::Template::Error (undefined method `model_name' for NilClass:Class):
  22. 1: <%= form_for(current_user.appreciations.find_by_liked_id(@user),
  23. 2: :html => { :method => :delete },
  24. 3: :remote => true) do |f| %>
  25. 4: <div class="actions"><%= f.submit "Unlike" %></div>
  26. app/views/users/_unlike.html.erb:1:in `_app_views_users__unlike_html_erb__3699679043085055303_2179921300__681871052201265919'
  27. app/views/users/_like_form.html.erb:6:in `_app_views_users__like_form_html_erb___4423424333270842212_2177904820_342311628635728804'
  28. app/views/posts/_post.html.erb:11:in `_app_views_posts__post_html_erb__1503387184621506678_2177975860__3593252078086836064'
  29. app/views/users/show.html.erb:8:in `_app_views_users_show_html_erb___3967304258457997387_2177316840_3488789899950577638'
  30.  
  31. Rendered /Users/ihal/.rvm/gems/ruby-1.9.2-p136@rails3gemset/gems/actionpack-3.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.4ms)
  32. Rendered /Users/ihal/.rvm/gems/ruby-1.9.2-p136@rails3gemset/gems/actionpack-3.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (506.5ms)
  33. Rendered /Users/ihal/.rvm/gems/ruby-1.9.2-p136@rails3gemset/gems/actionpack-3.0.1/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (554.7ms)
  34.  
  35.  
  36.  
  37.  
  38. ## users/show.html.erb
  39.  
  40. <table class="profile" summary="Profile information">
  41. <tr>
  42. <td class="main">
  43. <h1><%= @user.name %></h1>
  44. <%= render 'follow_form' if user_signed_in? %>
  45. <% unless @user.posts.empty? %>
  46. <table class="posts" summary="User posts">
  47. <%= render @posts %> # I heard that this passes the object to /posts/_post which
  48. </table> # allows the local var in post.content (its no defined anywhere else)
  49. <%= will_paginate @posts %>
  50. <% end %>
  51. </td>
  52. <td class="sidebar round">
  53. <%= link_to avatar_for(@user), @user.avatar.url %><br />
  54. <strong>Name</strong> <%= @user.name %><br />
  55. <strong>URL</strong> <%= link_to user_path(@user), user_path(@user) %>
  56. <strong>Posts</strong> <%= @user.posts.count %>
  57. <%= render 'shared/stats' %>
  58. </td>
  59. </tr>
  60. </table>
  61.  
  62.  
  63.  
  64. ## posts/_post.html.erb
  65.  
  66. <tr>
  67. <td class="post">
  68. <span class="title"><strong><%= link_to post.title, post %></strong></span><br />
  69. <span class="image"><strong>Image: </strong><%= image_tag post.image_url.to_s %></span><br />
  70. <span class="a_name"><strong>Artist: </strong><%= post.a_name %></span><br />
  71. <span class="item_name"><strong>Title: </strong><%= post.item_name %></span><br />
  72. <span class="a_twitter"><strong>Twitter: </strong><%= post.a_twitter %></span><br />
  73. <span class="g_from"><strong>Gotten From: </strong><%= post.g_from %></span><br />
  74. <span class="content"><strong>Plot: </strong><%= post.content %></span><br />
  75.  
  76. <%= render(:partial => 'users/like_form') if user_signed_in? %>
  77.  
  78. <span class="timestamp">
  79. Posted <%= time_ago_in_words(post.created_at) %> ago. </span>
  80. <a href="<%= likers_post_path(@post) %>">Likers</a><span id="likers"><br />
  81. </span>
  82.  
  83. </td>
  84.  
  85. <% if current_user?(post.user)%>
  86. <td>
  87. <%= link_to "delete", post, :method => :delete,
  88. :confirm => "You sure?",
  89. :title => post.content %>
  90. </td>
  91. <%end%>
  92. </tr>
  93.  
  94.  
  95. ## users/_like_form
  96.  
  97. <% unless current_user?(@user) %>
  98. <div id="like_form">
  99. <% if current_user.likes?(@post) %>
  100. <%=render(:partial => 'users/unlike') %>
  101. <% else %>
  102. <%=render(:partial => 'users/unlike') %>
  103. <% end %>
  104. </div>
  105. <% end %>
  106.  
  107.  
  108. ## users/_unlike
  109.  
  110. <%= form_for(current_user.appreciations.find_by_liked_id(@user),
  111. :html => { :method => :delete },
  112. :remote => true) do |f| %>
  113. <div class="actions"><%= f.submit "Unlike" %></div>
  114. <% end %>
  115.  
  116.  
  117. ## users/_like
  118.  
  119. <%= form_for(current_user.appreciations.
  120. build(:liked_id => @post.id),
  121. :remote => true) do |f| %>
  122. <div><%= f.hidden_field :liked_id %></div>
  123. <div class="actions"><%= f.submit "Like" %></div>
  124. <% end %>
  125.  
  126.  
  127.  
  128. ## users controller
  129.  
  130. class UsersController < ApplicationController
  131. before_filter :authenticate_user!, :except => [:create, :show, :new]
  132.  
  133. def show
  134. @user = User.find(params[:id])
  135. @posts = @user.posts.paginate(:per_page => "10",:page => params[:page])
  136. @title = @user.name
  137. end
  138.  
  139. def following
  140. @title = "Following"
  141. @user = User.find(params[:id])
  142. @users = @user.following.paginate(:page => params[:page])
  143. render 'show_follow'
  144. end
  145.  
  146. def followers
  147. @title = "Followers"
  148. @user = User.find(params[:id])
  149. @users = @user.followers.paginate(:page => params[:page])
  150. render 'show_follow'
  151. end
  152.  
  153. def likes
  154. @title = "Likes"
  155. @user = User.find(params[:id])
  156. @liked = @user.likes.paginate(:page => params[:page])
  157. render 'show_likes'
  158. end
  159.  
  160. def likers
  161. @title = "Likers"
  162. @user = User.find(params[:id])
  163. @likers = @user.likers.paginate(:page => params[:page])
  164. render 'show_likers'
  165. end
  166.  
  167.  
  168. end
  169.  
  170.  
  171. ## posts controller
  172.  
  173. class PostsController < ApplicationController
  174.  
  175. before_filter :authenticate_user!, :only => [:create, :edit, :update, :destroy]
  176. before_filter :authorized_user, :only => [:destroy, :edit, :update]
  177.  
  178. def create
  179. @user = current_user
  180. @post = current_user.posts.build(params[:post])
  181. if @post.save
  182. flash[:success] = "Post created!"
  183. redirect_to root_path
  184. else
  185. @feed_items = current_user.feed.paginate(:per_page => "10", :page => params[:page])
  186. render 'pages/home'
  187. end
  188. end
  189.  
  190. def index
  191. @posts = Post.paginate(:page => params[:page])
  192. end
  193.  
  194. def show
  195. @post = Post.find(params[:id])
  196. end
  197.  
  198. def destroy
  199. @post.destroy
  200. redirect_to root_path
  201. end
  202.  
  203. private
  204. def authorized_user
  205. @post = Post.find(params[:id])
  206. redirect_to root_path unless current_user?(@post.user)
  207. end
  208. end
  209.  
  210.  
  211. ## appreciations controller
  212.  
  213. class AppreciationsController < ApplicationController
  214. before_filter :authenticate_user!
  215.  
  216. def create
  217. @post = Post.find(params[:appreciation][:liked_id])
  218. current_user.like!(@post)
  219. redirect_to @post
  220. end
  221.  
  222. def destroy
  223. @post = Appreciation.find(params[:id]).liked
  224. current_user.unlike!(@post)
  225. redirect_to @post
  226. end
  227.  
  228. end
  229.  
  230.  
  231. ## user model
  232.  
  233. class User < ActiveRecord::Base
  234.  
  235. has_many :appreciations, :dependent => :destroy,
  236. :foreign_key => "liker_id"
  237.  
  238. has_many :likes, :through => :appreciations, :source => :liked
  239.  
  240.  
  241. def likes?(liked)
  242. appreciations.find_by_liked_id(liked)
  243. end
  244.  
  245. def like!(liked)
  246. appreciations.create!(:liked_id => liked.id)
  247. end
  248.  
  249. def unlike!(liked)
  250. appreciations.find_by_liked_id(liked).destroy
  251.  
  252.  
  253. #following
  254.  
  255.  
  256. has_many :relationships, :dependent => :destroy,
  257. :foreign_key => "follower_id"
  258.  
  259. has_many :reverse_relationships, :dependent => :destroy,
  260. :foreign_key => "followed_id",
  261. :class_name => "Relationship"
  262.  
  263. has_many :following, :through => :relationships, :source => :followed
  264.  
  265. has_many :followers, :through => :reverse_relationships, :source => :follower
  266.  
  267. # following and followers
  268. def following?(followed)
  269. relationships.find_by_followed_id(followed)
  270. end
  271.  
  272. def follow!(followed)
  273. relationships.create!(:followed_id => followed.id)
  274. end
  275.  
  276. def unfollow!(followed)
  277. relationships.find_by_followed_id(followed).destroy
  278. end
  279.  
  280.  
  281.  
  282.  
  283. ## post model
  284.  
  285. belongs_to :user
  286.  
  287.  
  288. has_many :reverse_relationships, :dependent => :destroy,
  289. :foreign_key => "liked_id",
  290. :class_name => "Appreciations"
  291.  
  292. has_many :likers, :through => :reverse_relationships, :source => :liker
  293.  
  294.  
  295. ## relationships model
  296.  
  297.  
  298. class Relationship < ActiveRecord::Base
  299. attr_accessible :followed_id
  300.  
  301. belongs_to :follower, :foreign_key => "follower_id", :class_name => "User"
  302. belongs_to :followed, :foreign_key => "followed_id", :class_name => "User"
  303.  
  304. validates :follower_id, :presence => true
  305. validates :followed_id, :presence => true
  306. end
  307.  
  308.  
  309.  
  310. ## routes.rb
  311.  
  312. Gp2011::Application.routes.draw do
  313.  
  314. match 'auth/:provider/callback' => 'authentications#create'
  315. resources :authentications
  316.  
  317. devise_for :users, :controllers => {:registrations => 'registrations'}
  318.  
  319. resources :posts do
  320. member do
  321. get :likers
  322. end
  323. end
  324.  
  325. resources :relationships, :only => [:create, :destroy]
  326. resources :appreciations, :only => [:create, :destroy]
  327.  
  328. root :to => "pages#home"
  329.  
  330. match '/contact', :to => 'pages#contact'
  331. match '/about', :to => 'pages#about'
  332. match '/help', :to => 'pages#help'
  333. match '/blog', :to => 'pages#blog'
  334.  
  335. resources :users do
  336. member do
  337. get :following, :followers, :likes
  338. end
  339. end
  340.  
  341.  
  342. ## appreciations migration
  343.  
  344.  
  345. class CreateAppreciations < ActiveRecord::Migration
  346. def self.up
  347. create_table :appreciations do |t|
  348. t.integer :liker_id
  349. t.integer :liked_id
  350.  
  351. t.timestamps
  352. end
  353. add_index :appreciations, :liker_id
  354. add_index :appreciations, :liked_id
  355. end
  356.  
  357. def self.down
  358. drop_table :appreciations
  359. end
  360. end
Add Comment
Please, Sign In to add comment