2013-04-24 5 views
7

मैं ब्लॉग में संपादन टिप्पणी कार्यक्षमता को लागू करने की कोशिश कर रहा हूं। मैं एक लेख पर टिप्पणियां बनाने और उन्हें प्रदर्शित करने में सक्षम हूं। जब मैं किसी लेख की किसी विशेष टिप्पणी के लिए "संपादित करें" लिंक पर क्लिक करता हूं, तो यह मुझे टिप्पणी फ़ॉर्म संपादित करता है लेकिन इसमें कोई सामग्री नहीं है। जैसे जब हम स्टैक ओवरफ़्लो पर कोई टिप्पणी या प्रश्न संपादित करते हैं, तो यह हमें सामग्री के साथ पृष्ठ संपादित करने के लिए ले जाता है। लेकिन मेरे मामले में, यह मुझे टिप्पणी के पृष्ठ को संपादित करने के लिए ले जाता है लेकिन यह खाली है (टिप्पणी की सामग्री शामिल नहीं है)। मेरी कोड फाइलें निम्नलिखित हैं।संपादन लिंक रेल ब्लॉग पर रूबी में टिप्पणियों को संपादित करने के लिए काम नहीं करता है

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> 
+0

इसकी वजह से प्रयोग कर रहे हैं 'Comment.new' (यानी)' form_for ([@article, टिप्पणी किया जाना चाहिए। नया]) do | f | 'कोशिश करें 'form_for ([@article, @comment]) do | f |' – codeit

+0

हाय कोडिट, मैंने आपके सुझाव के साथ प्रयास किया लेकिन अब मुझे आलेखों में NoMethodError नहीं मिला # शो दिखा रहा है f:/kuta /billi/app/views/comments/_comment_form.html.erb जहां पंक्ति # 1 उठाया गया: नील क्लास के लिए अपरिभाषित विधि 'model_name': कक्षा। कोई उपाय। –

+0

'एडिट' एक्शन में '@article = @ comment.article' – codeit

उत्तर

2
form_for ([@article, Comment.new]) 

form_for ([@article, @comment]) 
टिप्पणी में

/_comment_form.html.erb

+1

हाय PriteshJ, मैं अपने सुझाव के साथ की कोशिश की लेकिन लेख # में अब मैं हो रही NoMethodError दिखाने दिखा च: /kuta/billi/app/views/comments/_comment_form.html.erb जहां # 1 लाइन उठाया: अपरिभाषित विधि ' मॉडल_नाम 'के लिए नील क्लास: कक्षा। कोई उपाय। –

+0

@VSiingh अपने लेख/शो फाइलें जोड़ें जहां से टिप्पणियां फ़ाइल कहलाती है – PriteshJ

+0

हाय PriteshJ, मैंने लेख/शो जोड़ा है।html.erb। यदि आपको और आवश्यकता है तो यह केवल प्रासंगिक कोड है। कृपया मुझे बताओ। –

संबंधित मुद्दे