ما هو عكس URL_FOR في القضبان؟ وظيفة تأخذ المسار وينشئ المسار المفسر؟
-
19-09-2019 - |
سؤال
الدماغ مقلي قليلا .... كيف يمكنني الحصول على تجزئة من: تحكم: العمل من urrative_path؟
هذا هو أساسا عكس URL_FOR. في المثال أدناه، "Someh_Function" هو اسم وظيفة الغموض الذي أبحث عنه ... أعرف أنه من السهل، فقط لا يمكن أن نتذكر أو يبدو أنه قادر على العثور عليه في المستندات.
مثل ذلك:
some_function('/posts/1/edit')
=> {:controller => 'posts', :action => 'edit', :id => '1'}
المحلول
يحتوي RSPEC على طريقة "params_for"، والتي تستخدم طرق توجيه وحدة تحكم الحركة لتحليل المسارات مع الأساليب في الطرق.
هم أكثر قوة قليلا من هذا، لكنها تغلي إلى:
def params_for(path, method)
params = ActionController::Routing::Routes.recognize_path(path, :method => method)
end
نصائح أخرى
مع القضبان 3 أفضل طريقة هي استخدام
Rails.application.routes.recognize_path('/posts/1/edit')
لا تنتمي إلى StackOverflow