मैं ब्लॉग में संपादन टिप्पणी कार्यक्षमता को लागू करने की कोशिश कर रहा हूं। मैं एक लेख पर टिप्पणियां बनाने और उन्हें प्रदर्शित करने में सक्षम हूं। जब मैं किसी लेख की किसी विशेष टिप्पणी के लिए "संपादित करें" लिंक पर क्लिक करता हूं, तो यह मुझे टिप्पणी फ़ॉर्म संपादित करता है लेकिन इसमें कोई सामग्री नहीं है। जैसे जब हम स्टैक ओवरफ़्लो पर कोई टिप्पणी या प्रश्न संपादित करते हैं, तो यह हमें सामग्री के साथ पृष्ठ संपादित करने के लिए ले जाता है। लेकिन मेरे मामले में, यह मुझे टिप्पणी के पृष्ठ को संपादित करने के लिए ले जाता है लेकिन यह खाली है (टिप्पणी की सामग्री शामिल नहीं है)। मेरी कोड फाइलें निम्नलिखित हैं।संपादन लिंक रेल ब्लॉग पर रूबी में टिप्पणियों को संपादित करने के लिए काम नहीं करता है
comments_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 %>
टिप्पणी/_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 %>
रेक मार्गों परिणाम है। (पूरा नहीं)
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
routes.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
articles_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
लेख/show.html.erb (यह है शो का केवल प्रासंगिक कोड)
<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>
इसकी वजह से प्रयोग कर रहे हैं 'Comment.new' (यानी)' form_for ([@article, टिप्पणी किया जाना चाहिए। नया]) do | f | 'कोशिश करें 'form_for ([@article, @comment]) do | f |' – codeit
हाय कोडिट, मैंने आपके सुझाव के साथ प्रयास किया लेकिन अब मुझे आलेखों में NoMethodError नहीं मिला # शो दिखा रहा है f:/kuta /billi/app/views/comments/_comment_form.html.erb जहां पंक्ति # 1 उठाया गया: नील क्लास के लिए अपरिभाषित विधि 'model_name': कक्षा। कोई उपाय। –
'एडिट' एक्शन में '@article = @ comment.article' – codeit