Ich habe mit dem Hinzufügen der Funktion von Likes und Dis-likes gekämpft. Ich habe Routen verschachtelt und ich kann nicht herausfinden, was ich tue, falsch:Uninitialized Konstante Createcampaigns :: LikeController
Meine Routen wie folgt aussieht
createcampaign_like_index GET /createcampaigns/:createcampaign_id/like(.:format) createcampaigns/like#index
POST /createcampaigns/:createcampaign_id/like(.:format) createcampaigns/like#create
new_createcampaign_like GET /createcampaigns/:createcampaign_id/like/new(.:format) createcampaigns/like#new
edit_createcampaign_like GET /createcampaigns/:createcampaign_id/like/:id/edit(.:format) createcampaigns/like#edit
createcampaign_like GET /createcampaigns/:createcampaign_id/like/:id(.:format) createcampaigns/like#show
PATCH /createcampaigns/:createcampaign_id/like/:id(.:format) createcampaigns/like#update
PUT /createcampaigns/:createcampaign_id/like/:id(.:format) createcampaigns/like#update
DELETE /createcampaigns/:createcampaign_id/like/:id(.:format) createcampaigns/like#destroy
resources :createcampaigns do
resources :like, module: :createcampaigns
wie Controller
app/controllers/createcampaigns/likes_controller.rb
Inhalt meiner Wie Controller.rb Datei
class Createcampaigns::LikesController < ApplicationController
before_action :authenticate_user!
def likes
end
def index
@createcampaign = Createcampaign.find(params[:createcampaign_id])
@createcampaign.likes.where(user_id: current_user.id).first_or_create
respond_with(@createcampaign)
end
def create
@createcampaign.like.where(user_id: current_user.id).first_or_create
respond_to do |format|
format.html { redirect_to @createcampaign }
format.js
end
end
private
def set_post
@createcampaign = Createcampaign.find(params[:createcampaign_id])
end
end
app/ansichten/createcampaigns/show.html.erb
<div id="likes">
<%= render partial: "likes" %>
</div>
Benutzermodell
has_many :likes
def likes?(post)
post.likes.where(user_id: id).any?
end
habe ich versucht, mit dieser ersten als Link:
<%= link_to "Like", createcampaign_like_path(@createcampaign), method: :like %>
Ich erhalte diese Fehler
ActionController::UrlGenerationError in Createcampaigns#show
Showing /home/ubuntu/workspace/app/views/createcampaigns/_like.html.erb where line #2 raised:
No route matches {:action=>"show", :controller=>"createcampaigns/like", :createcampaign_id=>#<Createcampaign id: 127, name: "Sessions must go; special prosecutor must be appoi...", description: "Attorney General Jeff Sessions lied under oath abo...", image: nil, location: "35 windfield ave", reason: "During his confirmation hearing, when asked by Sen...", bio: nil, user_id: 18, policy_in_question: nil, time: nil, contact_info: nil, city: "jersey city", state: "nj", zipcode: "07521", address: "3", country: "USA", banner: nil, created_at: "2017-03-15 14:44:04", updated_at: "2017-03-16 12:24:10", campaign_image: nil, campaignimage: "americanflag.jpg", eventgroundrules: nil, starts_at: nil, start_time: "4pm", campaigndate: "2017-03-15", campaigntarget: 0, admin: true, category_name: nil, category_id: 6, president_id: 743, senatemember_id: 1819, housemember_id: 1408>, :id=>nil} missing required keys: [:id]
Extrahiert Quelle (um Zeile # 2) :
es scheint es brauchen oder Attribute fehlen, so habe ich versucht, in der Benutzer-ID vorbei und
<%= link_to "Like", createcampaign_like_path(user_id: current_user.id), method: :like %>
ich habe dies:
No route matches {:action=>"show", :controller=>"createcampaigns/like", :id=>"127", :user_id=>16} missing required keys: [:createcampaign_id]
Extracted source (around line #2):
1
2
<%= link_to "Like", createcampaign_like_path(user_id: current_user.id), method: :like %>
Was soll meine Routen sein? bitte helfen ..Neu auf Schienen müssen
Ressourcen: createcampaigns tun Ressourcen: Gleichen, Modul: createcampaigns Ressourcen: Kommentare, Modul: createcampaigns Ressourcen: Kommentare, Modul: quietscht Ressourcen: Quietschen, außer: [: show,: index] Mitglied tun : folgen get: unfollow Ende Ende –