over 2 years ago
  1. dashboard要修改,不然A用戶可以去改到B用戶的答案。
    解答:

    dashboard_controller.rb
    class Dashboard::DashboardController < ApplicationController
    before_action :authenticate_user!
    layout 'dashboard'
    before_filter :require_permission
    
    def require_permission
        if current_user != User.find(params[:id])
            redirect_to root_path
        end
    end
    end
    

    不過這樣寫之後又出現新的問題,自己回答過的題目會進不去,會找不到id。
    解決:後來JC有講解法。

  2. 檢查為甚麼registration的時候會出現提示訊息,login不會。

  3. 建立與編輯類別/題目的時候

    • 有刪除類別的按鈕,沒有刪除問題的按鈕
    • 用戶回答過的,如果類別/題目被刪除了,會發生什麼事情?
    • 新建問題的時候,有四個選項。如果只填兩個選項,在編輯的時候,只會有兩個選項可以編輯,不能新增第三個選項。
  4. 照片上傳後看不到預覽。好像是devise的問題吧 Users Avatars - Uploading Images Using Paperclip

  5. 看誰回答過一樣的題目,應該要顯示答題人數。然後進去之後,應該是看到每個回答過的用戶對於當題的答案
    可以寫成這樣,不過會包含current_user,所以還要扣掉1。

    view/responds/responded_issue.html.erb
    <td>
    <%= link_to "#{ri.option.issue.user.count}人回答過", issue_path(ri.option.issue.id), class:"btn btn-purple" %>
    </td>
    

    扣掉1。有點怪怪的,不過可以用。

    view/responds/responded_issue.html.erb
    <td>
    <%= link_to "#{ri.option.issue.user.count-1}人回答過", issue_path(ri.option.issue.id), class:"btn btn-purple" %>
    </td>
    
  6. 這個式子應該是錯的,所以才會前後台的respond id 不一樣。

    users_helper.rb
    def current_user_respond(user_respond,current_user)
    @current_user_respond = current_user.issue.find(user_respond.option.issue.id).respond.find_by(:user_id == current_user).option.content
    @current_user_respond
    end
    
    a.respond.find_by(:option_id => Issue.find(7)
    

    如果問題只有兩個選項,之後不能新增新選項,只能刪除舊選項。

  7. current_user沒回答過的問題,別的user回答過的問題應該顯示:已答,而不是直接顯示答案。

← ROR TUTORIAL (3RD ED.) Ch8: Log in, log out 如何設計User Profile Page,去完成基本題 →