Witam, mam problem z napisaniem formułki która odpowiadałaby za usunięcie komentarza w danym poście. Próbowałem zaadaptować kod który poprawnie usuwa posty ale coś mi nie wychodzi. Czy znalazłby się ktoś chętny mi pomóc? Z góry bardzo dziękuję, pozdrawiam.
KOD WIDOKU:
Wrzucone <%=h @post.data.to_s(:short) %> przez: <%=h @post.author%>
<%=h @post.title %>
<%=h @post.text%>
Komentarzy:<%= @post.comment.count %>
<%= link_to ‘Pokaż’, :action => ‘show’, :id => @post %>
<%= link_to ‘Edytuj’, :action => ‘edit’, :id => @post %>
<%= link_to ‘Usuń’, @post, :confirm => ‘Jesteś pewny?’, :method => :delete %>
<%= link_to ‘Powrót’, :action => ‘index’ %>
<% for comment in @post.comment %>
<%= h comment.created_at.to_s(:short) %> użytkownik <%= h comment.author %> napisał:
<%= h comment.text %>
<% end %>
<%= form_tag :action => ‘comment’, :id => @post %>
Dodaj komentarz:
<%= text_area ‘comment’, ‘text’, :cols => ‘50’, :rows=>‘5’ %>
<%= submit_tag “Dodaj” %> <%= form_tag %>
KOD KONTROLERA:
class PostsController < ApplicationController
include ApplicationHelper
helper :profile
before_filter :protect, :only => [:index, :edit]
def index
@posts = Post.all
@user = User.find(session[:user_id])
respond_to do |format|
format.html
format.xml { render :xml => @posts }
end
end
def show
@post = Post.find(params[:id])
@user = User.find(session[:user_id])
respond_to do |format|
format.html
format.xml { render :xml => @post }
end
end
def new
@post = Post.new
respond_to do |format|
format.html
format.xml { render :xml => @post }
end
end
def edit
@post = Post.find(params[:id])
end
def create
@post = Post.new(params[:post])
@post.data = Time.now
@user = User.find(session[:user_id])
@post.author = @user.screen_name
@post.author_id = @user.id
if @post.save
flash[:notice] = ‘Post został dodany’
redirect_to :action => ‘index’
else
render :action => ‘new’
end
end
def update
@post = Post.find(params[:id])
respond_to do |format|
if @post.update_attributes(params[:post])
format.html { redirect_to(@post, :notice => ‘Post został zaktualizowany’) }
format.xml { head :ok }
else
format.html { render :action => “edit” }
format.xml { render :xml => @post.errors, :status => :unprocessable_entity }
end
end
end
def destroy
@post = Post.find(params[:id])
@post.destroy
respond_to do |format|
format.html { redirect_to(posts_url) }
format.xml { head :ok }
end
end
def comment
@post = Post.find(params[:id])
@user = User.find(session[:user_id])
@text = (params[:comment].values_at “text”).to_s
@post.comment.create(:text => @text, :author => @user.screen_name, :author_id => @user.id)
flash[:notice] = “Komentarz został dodany”
redirect_to :action => ‘show’, :id => @post
end
end