से नियंत्रक में एक कस्टम विधि के लिए रेल मार्ग पर रूबी मेरे पास नियंत्रक नाम पोस्ट हैं। मेरी /config/routes.rb
में, मैं का इस्तेमाल किया है इस -दृश्य
resources :posts
/app/controllers/posts_controller.rb:
class PostsController < ApplicationController
def new
@post = Post.new
end
def show
@post = Post.find(params[:id])
end
def categoryshow
@post = Post.find(params[:category])
end
def index
@posts = Post.all
end
def create
@post = Post.new(params[:post])
if @post.save
flash.now[:success] = "Your Post Successful"
redirect_to @post
else
render 'new'
end
end
end
मैं रेल के लिए नया हूँ और मैं अक्सर मार्गों के साथ भ्रमित हो। मेरे पास एक और static_pages नियंत्रक है। home.html.erb
फ़ाइल में है। /app/views/static_pages/home.html.erb
से
def categoryshow
@post = Post.find(params[:category])
end
'categoryshow' पदों नियंत्रक की विधि मैं उस का प्रबंधन कैसे करूँ -
कॉल करने के लिए मुझे क्या करना चाहते हैं? अगर मैं 'post_path' का उपयोग करता हूं, तो यह श्रेणीशक्ति कार्रवाई के बजाय इंडेक्स एक्शन पर जाता है।
#मैंने लिंक के माध्यम से पढ़ा और वहां से कुछ चीजों की कोशिश की। यहाँ समस्या यह है कि मैं का सामना करना पड़ रहा है:
जब मैं config में इस की कोशिश की/routes.rb
resources :posts do
collection do
get 'categoryshow'
end
end
यह एक 'categoryshow_posts_path'
उत्पन्न करता है मेरी नजर में, मैं इस प्रयोग किया है:
डीईएफ़ categorys:
<ul class="users">
<%= Post::CATEGORIES.each do |category| %>
<li>
<%= link_to category,categoryshow_posts_path %>
</li>
<% end %>
</ul>
मेरी पोस्ट नियंत्रक निम्न विधि है कैसे
@post = Post.find(params[:category])
अंत
इस मामले में, मैं निम्नलिखित त्रुटि हो रही है:
ActiveRecord :: RecordNotFound PostsController में # categoryshow
पोस्ट एक आईडी बिना नहीं मिल सका
दूसरे, मैं बाहर गैर साधन संपन्न मार्गों का उपयोग कर के रूप में है कि लिंक आपके द्वारा दी गई में उल्लेख करने की कोशिश की:
match ':posts(/:categoryshow(/:category))'
ध्यान में रखते हुए, मैं इस का उपयोग कर रहा:
श्रेणियाँ
<ul class="users">
<%= Post::CATEGORIES.each do |category| %>
<li>
<%= link_to category,"posts/#{category}" %>
</li>
<% end %>
</ul>
इस मामले में, हमारा गैर संसाधनपूर्ण मार्ग तभी मेल खाएगा जब कोई अन्य मौजूदा संसाधन मार्ग मेल नहीं खाता है।हालांकि, मैं देख रहा हूँ कि इस शो कार्रवाई मिलान किया जाता है और मैं इस त्रुटि संदेश मिलता है:
इस शो कार्रवाई है:
@post = Post.find(params[:id])
अंत
ActiveRecord डीईएफ़ दिखाने :: PostsController में RecordNotFound # शो
आईडी के साथ पोस्ट नहीं मिला: राजनीति
मैं वास्तव में किसी भी मदद की सराहना करता हूं !!
धन्यवाद (सिद्धार्थ)
मेरे पास एक ही समस्या है ...:/ क्या आपने इसे हल किया? – roadev
@roadev \t चूंकि प्रश्न चार साल पहले से था, इसलिए मुझे निश्चित रूप से उम्मीद है। –