मैं निम्नलिखित मार्गों:रेल मार्ग कार्रवाई है कि कई मार्गों पर उपलब्ध है संभाल करने के लिए
resources :users do
# List reviews made by user
resources :reviews, :only => [ :index ]
end
resources :products do
# List reviews by product, and provide :product_id for creation
resources :reviews, :only => [ :index, :new, :create ]
end
# Other actions don't depend on other resources
resources :reviews, :except => [ :index, :new, :create ]
सब कुछ सही लग रहा है, ReviewsController#index
को छोड़कर:
def index
if params[:user_id]
@reviews = Review.find_all_by_user_id params[:user_id]
else
@reviews = Review.find_all_by_product_id params[:product_id]
end
respond_with @reviews
end
हो, तो एक मानक समाधान मैं सोच रहा था ऊपर की समस्या, या अगर ऐसा करने का एक बेहतर तरीका है।
बहुत अच्छा सुझाव। मुझे लगता है कि मुझे अपनी 'स्टिक को रीस्टफुल एक्शन' मानसिकता से छुटकारा पाना चाहिए। :) –
कभी-कभी यह काम करता है, दूसरी बार यह रास्ते में आता है। यदि आप पूरी तरह से आराम से कार्य करने के लिए चिपकना चाहते हैं, तो आप कंट्रोलर को उनसे संभालने की तुलना में ओवरराइट कर सकते हैं, ताकि आपके पास एक आरामदायक उत्पाद समीक्षा नियंत्रक और एक आरामदायक उपयोगकर्ता समीक्षा नियंत्रक हो। निस्संदेह आप पहले से ही बहुत सारे उपयोग कर रहे हैं और केवल कथन ही स्पष्ट यूआरएल मैचों का उपयोग करके, उदाहरण के लिए, आपके लिए सबसे अच्छा समाधान हो सकता है। –
मैंने सुना है कि कुछ आराम में भी लपेट गए हैं, और मैं मानता हूं कि कभी-कभी आपको तोड़ने की ज़रूरत होती है, लेकिन यह ऐसा समय नहीं दिखता है। असल में, दो नियंत्रकों को बनाकर, आप दो संसाधनों (केवल सूचकांक कार्रवाई) की बाकी शैली में तोड़ रहे हैं। इस मामले में, मैं इसे एक नियंत्रक में रखूंगा और पैराम के लिए उपयुक्त लोड करूंगा। – DGM