ฉันมีวิธีที่ทำสิ่งนี้:
before_filter :authenticate_rights, :only => [:show]
def authenticate_rights
project = Project.find(params[:id])
redirect_to signin_path unless project.hidden
end
ฉันต้องการใช้วิธีนี้ในตัวควบคุมอื่น ๆ ด้วยดังนั้นฉันจึงคัดลอกเมธอดไปยังตัวช่วยที่รวมอยู่ใน application_controller
ปัญหาคือในคอนโทรลเลอร์บางตัว id ของโปรเจ็กต์ไม่ใช่:id
สัญลักษณ์ แต่เป็น fe :project_id
(และยังมี:id
อยู่ (สำหรับรุ่นอื่น)
คุณจะแก้ปัญหานี้อย่างไร? มีตัวเลือกในการเพิ่มพารามิเตอร์ให้กับการกระทำ before_filter (เพื่อส่งผ่านพารามิเตอร์ที่ถูกต้อง) หรือไม่
,:only => [:show]
สัญลักษณ์ไหม ฉันได้รับข้อผิดพลาดพยายามbefore_filter { |c| c.authenticate_rights correct_id_here }, :only => [:show]