إن التحقق من السمة صحيح قبل تنفيذ إجراء CRUD
-
26-09-2019 - |
سؤال
قبل أن يتم تشغيل أي من إجراءات وحدة تحكم المقالة الخاصة بي (باستثناء الفهرس) ، أريد أن أتأكد من أن الحقل النشط للمقال صحيح. فكرت في القيام بذلك في APERE_FILTER ، ولكن في هذه المرحلة لم يتم تعيين article ، أي أفكار من فضلك؟
شكرًا
المحلول
يمكنك تعيين المقالة في طريقة المساعد وإزالة بعض تكرار التعليمات البرمجية أثناء وجودك فيه.
class .. < ApplicationController
helper_method :current_article
def index
# your code etc..
end
private
def current_article
@article ||= Article.find(params[:id], :conditions => { :active => true }) ||
raise(ActiveRecord::RecordNotFound)
end
end
في الأساس يمكنك الاتصال الآن current_article
في عرضك ، تحرير (إلخ) الإجراءات ووجهات النظر بدلاً من @article
.
نصائح أخرى
تحتاج فقط إلى القيام 2 قبل _filter.
1 مع تحميل المقالة والثاني للتحقق مما إذا كان الحقل موجود
before_filter :load_article, :only => [:show, :edit, :update]
before_filter :has_field, :only => [:show, :edit, :update]
...
private
def load_article
@article = Article.find(params[:id])
end
def has_field
unless @article.active
redirect_to root_url
end
end
لا تنتمي إلى StackOverflow