gpt4 book ai didi

ruby-on-rails - 编辑链接不适用于编辑 ruby​​ on rails 博客中的评论

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:39 25 4
gpt4 key购买 nike

我正在尝试在博客中实现编辑评论功能。我能够在文章上创建评论并显示它们。当我点击一篇文章的特定评论的“编辑”链接时,它会带我编辑评论表单,但它不包含任何内容。就像我们在堆栈溢出上编辑任何评论或问题一样,它需要我们编辑包含内容的页面。但就我而言,我需要编辑评论页面,但它是空的(不包含评论内容)。以下是我的代码文件。

评论 Controller .rb

    class CommentsController < ApplicationController
before_filter :user_signed_in, except: [:create]
def new
@comment = Comment.new
end

def create
@article = Article.find(params[:article_id])
@comment = @article.comments.build(params[:comment])
@comment.user_id = current_user.id
@comment.save
flash[:success] = "Comment created!"
redirect_to article_path(@comment.article)
end

def edit
@comment = Comment.find(params[:id])
end

def update
@comment = Comment.find(params[:id])
@article = @comment.article
respond_to do |format|
if @comment.update_attributes(params[:comment])
redirect_to @article_path(@article)
else
render :action => "edit"
end
end

def destroy
@comment = Comment.find(params[:id])
@article = Article.find(params[:article_id])
@comment.destroy
redirect_to @article_path(@artilce)
end

end

评论/edit.html.erb

    <h3>Editing comment</h3>
<%= render :partial => 'comment_form' %>

评论/_comment_form.html.erb

<%= form_for ([@article, Comment.new]) do |f| %>
<%= f.text_area :content, :style => "width:727px; height:100px; border: 1px solid #999999;margin-top:80px; background-color:#FFFFFF;margin-left:-33px" %>
<div class="actions">
<%= f.submit "Add Comment", :style => "margin-right:20px; margin-left:560px; background-color:#66C9Ef; color:#FFFFFF; border: 0px solid #82b548; border-radius: 3px 3px 3px 3px; font-size: 1.3rem;" %>
</div>
<% end %>

comments/_comment.html.erb(这里我给出了编辑文章评论的链接)

      <% if @article.comments.count  >= 1 %>
<div style="border: px solid #66c9ee;border-radius: 0px 0px 0px 0px;margin: 10px -30px 15px; padding: 10px 15px 25px; background: none repeat scroll 0 0 #F2F2F2; width:700px; font-size: 1.2em;border-bottom: 0px solid #DDDDDD;">
<%= comment.content %>
<div id="tabula">
<ul id="tabula">
<li> <div style="color: #0077CC;margin-rigth:200px; font-size: 1.0em;margin-top:4px;background-color:#;"> <%= comment.user.username if comment.user %></div></li>
<li> <div style="color: #0077CC; background-color:; margin-top:4px; margin-left:25px;"> <p> <%= time_ago_in_words(comment.created_at.in_time_zone("Asia/Calcutta")) unless comment.created_at.nil? %> </p></div></li>
<li> <div style="color: #0077CC; background-color:; margin-top:4px; margin-left:25px;"> <%= link_to "edit", edit_article_comment_path(@article ,comment) %> </div></li>
</ul>
</div>
<% else %>
<div style="color:#0077CC;margin-left:25px;font-size:1.4em;"> be first to comment</div>
<% end %>

rake 路线结果。(不完整)

            articles GET    /articles(.:format)                               articles#index
POST /articles(.:format) articles#create
new_article GET /articles/new(.:format) articles#new
edit_article GET /articles/:id/edit(.:format) articles#edit
article GET /articles/:id(.:format) articles#show
PUT /articles/:id(.:format) articles#update
DELETE /articles/:id(.:format) articles#destroy
dashboard_index GET /dashboard(.:format) dashboard#index
POST /dashboard(.:format) dashboard#create
new_dashboard GET /dashboard/new(.:format) dashboard#new
edit_dashboard GET /dashboard/:id/edit(.:format) dashboard#edit
dashboard GET /dashboard/:id(.:format) dashboard#show
PUT /dashboard/:id(.:format) dashboard#update
DELETE /dashboard/:id(.:format) dashboard#destroy


tags GET /tags(.:format) tags#index
POST /tags(.:format) tags#create
new_tag GET /tags/new(.:format) tags#new
edit_tag GET /tags/:id/edit(.:format) tags#edit
tag GET /tags/:id(.:format) tags#show
PUT /tags/:id(.:format) tags#update
DELETE /tags/:id(.:format) tags#destroy
article_comments GET /articles/:article_id/comments(.:format) comments#index
POST /articles/:article_id/comments(.:format) comments#create
new_article_comment GET /articles/:article_id/comments/new(.:format) comments#new
edit_article_comment GET /articles/:article_id/comments/:id/edit(.:format) comments#edit
article_comment GET /articles/:article_id/comments/:id(.:format) comments#show
PUT /articles/:article_id/comments/:id(.:format) comments#update
DELETE /articles/:article_id/comments/:id(.:format) comments#destroy
GET /articles(.:format) articles#index
POST /articles(.:format) articles#create
GET /articles/new(.:format) articles#new
GET /articles/:id/edit(.:format) articles#edit
GET /articles/:id(.:format) articles#show
PUT /articles/:id(.:format) articles#update
DELETE /articles/:id(.:format) articles#destroy

路线.rb

    Mau::Application.routes.draw do
devise_for :users
root :to => 'articles#index'
resources :articles
resources :dashboard
resources :tags
resources :articles do
resources :comments
end
end

文章 Controller .rb

class ArticlesController < ApplicationController
before_filter :is_user_admin, only: [:new, :create, :edit, :destroy]
before_filter :log_impression, :only=> [:show]

def is_user_admin
redirect_to(action: :index) unless current_user.try(:is_admin?)
return false
end

def log_impression
@article = Article.find(params[:id])
# this assumes you have a current_user method in your authentication system
@article.impressions.create(ip_address: request.remote_ip,user_id:current_user.id)
end

def index
@articles = Article.all(:order => "created_at DESC")
@article_titles = Article.first(10)
@tags = Tag.all
end

def show
@article = Article.find(params[:id])
@related_articles = Article.joins(:taggings).where('articles.id != ?', @article.id).where(taggings: { tag_id: @article.tag_ids })
@article_popular = Article.order('articles.impressions_count DESC').limit(5)
end

def new
@article = Article.new
end

def create
@article = Article.new(params[:article])
@article.user_id = current_user.id
if @article.save
flash[:success] = "article created!"
redirect_to article_path(@article)
else
render 'new'
end
end

def destroy
@article = Article.find(params[:id])
@article.destroy
redirect_to action: 'index'
end

def edit
@article = Article.find(params[:id])
end

def update
@article = Article.find(params[:id])
if @article.update_attributes(params[:article])
flash.notice = "Article '#{@article.title}' Updated!"
redirect_to article_path(@article)
else
render 'edit'
end
end
end

articles/show.html.erb(这只是show的相关代码)

 <div id="commentform">
<%= render :partial => 'comments/comment_form' %>
<% @article.comments.each do |c| %>
<% if !c.nil? %>
<div id ="commentdisplay"> <%= render partial: 'comments/comment', :locals => { :comment => c } %> </div>
<% end %>
<% end %>
</div>

最佳答案

form_for ([@article, Comment.new])

应该是

form_for ([@article, @comment])

在评论/_comment_form.html.erb

关于ruby-on-rails - 编辑链接不适用于编辑 ruby​​ on rails 博客中的评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com