2015-10-03 84 views
-1

我試圖確保評論可以屬於帖子以及擁有屬於每個用戶的ID。這意味着,我希望能夠僅僅呈現評論並讓它說出哪個用戶發佈了評論。到目前爲止,用同樣的東西來閱讀其他人的問題,我仍然無法解決它!我感謝任何幫助和提前感謝!評論將不會在儀表板上呈現。找不到評論'id'=

這裏是我的users_controller.rb(唯一有用位),

class UsersController < ApplicationController 
    before_action :set_user, only: [:edit, :update, :destroy] 
    before_action :correct_user, only: [:edit ] 

    after_action :signed_in_after_register, only: :create 

    def dashboard 
    @user = User.find(session[:user_id]) unless session[:user_id] == "" 
    redirect_to login_path, notice: "You're not logged in" unless @user 
    @posts = @user.posts.order("created_at DESC").limit(3) 
    @comment = Comment.find(params[:comment_id]) 
    end 

    def user_params 
     params.require(:user).permit(:first_name, :last_name, :bio, :comments, :password, :password_confirmation, :email, :age, :profile_picture, :post, :body) 
    end 
end 

這裏是我的dashboard.html.erb,

<%- @posts.each do |post| %> 
    <div class="panel panel-default"> 
     <div class="panel-heading-gray"> <%= image_tag @user.profile_picture.url(:thumb) %> <h5 class="user-name"><%= @user.name %></h5> <h6 class="time-posted"><%= post.created_at.strftime("%B, %d, %Y") %></h6></div> 
     <div class="panel-body"><%= link_to post.body, post %></div> 
     <div class="panel-footer"> 
      <h2>Add a comment:</h2> 
      <%= render post.comments %> 
      <p class="Like-option">Like ·</p> 
      <p class="comment-form">Comment - <%= @post.comments.count %></p> 
      <p class="view-option">· View</p> 
      <p class="comment-profile-picture"> 
      <%= image_tag @user.profile_picture.url(:thumb) %></p> 
      <div class="comments-stream"> 
      <%= render @post.comments %> 
     </div> 
     <div id="comments-form"> 
      <%= render "comments/form", :post => post %> 
     </div> 
    </div> 
<!-- Other non-comments related code here --> 
<% end %> 

編輯:這是我的_comment.html.erb,

<div class="comment clearfix"> 
    <div class="comment_content"> 
     <p class="comment_body"><%= comment.body %></p> 

     <% if @user_signed_in %> 
      <p><%= link_to "Delete", [comment.post, comment], 
         method: :delete, 
         class: "button", 
         data: { confirm: "Are you sure?" } %> 
      </p> 
     <% end %> 
    </div> 
</div> 

以防萬一,這裏是我的意見_form.html.erb形式,

<%= form_for([@post, @post.comments.build]) do |f| %> 
    <p> 
     <%= f.text_area :body, placeholder: "Write a comment!" %> 
    </p> 
    <br> 
    <p> <%= f.submit %> </p> 

<% end %> 

如果您需要查看任何其他代碼或任何內容,只需發表評論並告訴我們,謝謝大家!

+0

我專門在評論中說,將不會呈現在儀表板。這意味着它是唯一的代碼顯示在這裏的問題,所以是的,我試圖隔離。這個問題發佈是希望得到答案,而不是有人試圖發揮聰明。所以謝謝,並有一個很好的。 –

+0

「只有一點代碼?」那麼你的UsersController是你發佈的嗎?或者你的評論控制器?或者看法?或者你的路線不好?你發佈了所有這些,顯然希望人們能夠通過它,即使你已經「試圖隔離」。現在你想得到一個關於它的態度?我認爲這個問題不是你的代碼。 – MarsAtomic

+0

很確定我正在尋找幫助,有一個好的。 –

回答

1

如果您在儀表板操作中調用raise params.inspect,則會看到沒有此屬性comment_id。然而,你的@comment定義正試圖調用一個。你根本不需要這個。

在你看來,你甚至都沒有提及@comment。至於添加發布評論的用戶的用戶名或圖片,您必須將其放在評論部分views/comments/_comment.html.erb中 - 因爲這是呈現的內容,每次評論只需一次。

成才,如:

<div class="comment clearfix"> 
    <div class="comment_content"> 
    <p class="comment_body"> 
     <span class="commentor"><%= comment.user.name %></span> 
     <span class="body"><%= comment.body %></span> 
    </p> 
    <% if @user_signed_in %>   
     <p><%= link_to "Delete", [comment.post, comment], 
        method: :delete, 
        class: "button", 
        data: { confirm: "Are you sure?" } %> 
     </p> 
    <% end %> 
    </div> 
</div> 
+0

我明白你在說什麼,但在做出這些更改後,我仍然在儀表板上看到這個錯誤。 正在顯示C:/row/website/app/views/comments/_comment.html.erb其中第4行產生了: 未定義的方法'user'for#

+0

所以是啊...您認爲什麼? –