Rails 3 طرق: أعضاء جافون
-
27-09-2019 - |
سؤال
أحتاج إلى إضافة أساليب الأعضاء التالية إلى عدد من الموارد ، هل هناك طريقة لتجفيف هذا؟
member do
get :votes
post :up_vote
post :down_vote
end
في طريقي
resources :news do
resources :comments do
member do
get :votes
post :up_vote
post :down_vote
end
end
end
resources :downloads do
resources :whatever do
member do
get :votes
post :up_vote
post :down_vote
end
end
end
تعديل
لقد قمت بالفعل بنقلها إلى وحدة نمطية مثل:
module Votable
module RoutingMethods
def votable_resources
member do
get "up_votes"
get "down_votes"
post "up_vote"
post "down_vote"
end
end
end # RoutingMethods
end
الآن ، يبدو أن مساراتي.
require 'votable'
include Votable::RoutingMethods
MyApp::Application.routes.draw do
namespace :main, :path => "/" do
resources :users do
resources :comments do
votable_resources
end
end
end
end
شاهد تعليقاتي المضمنة ، لكني أريد الطريق المسماة لتبدو: main_users_comments_up_votes
المحلول
ألا يمكنك فقط تحديد طريقة في ملفات طرقك؟
def foo
member do
get :votes
post :up_vote
post :down_vote
end
end
resources :news do
resources :comments do
foo
end
end
يحرر
لم أستخدم هذه التقنية من قبل. يبدو أنه يعمل عندما فعلت "طرق أشعل النار". على أي حال ، فإن ملف الطرق هو مجرد رمز Ruby. فقط كن حذرًا بشأن اسم الطريقة التي تحددها لأنه تم تعريفه في مثيل ActionDispatch :: Routing :: Mapper.
# routes.rb
MyApp::Application.routes.draw do
puts self
puts y self.methods.sort
end
# Terminal
> rake routes
لا تنتمي إلى StackOverflow