রিলে অন রুবিতে ড্যাশ Unders-Unders سمجھের পরিবর্তে `_` সহ রুট


88

আমি চাইছি আমার ইউআরএলগুলি শব্দ বিভাজক হিসাবে -আন্ডারস্কোরের পরিবর্তে ড্যাশ ব্যবহার করবে use পরিবর্তে _উদাহরণস্বরূপ ।controller/my-actioncontroller/my_action

আমি দুটি বিষয় সম্পর্কে অবাক:

  1. গুগল ইত্যাদি। তাদের পার্থক্য অবিরত।
  2. এই রুবেলে রুবিটির রাউটিংয়ে মানচিত্রের -জন্য কোনও সাধারণ, গ্লোবাল কনফিগারেশন প্যারামিটার নেই _। নাকি তা করে?

আমি সর্বোত্তম সমাধানটি হ'ল ব্যবহার করা :asবা একটি নামী পথ।

আমার ধারণা হ'ল বিশ্বব্যাপী কনফিগারেশনটি পরীক্ষা করার জন্য রেলগুলির রাউটিংটি পরিবর্তন -করতে হবে _এবং একটি নিয়ামক ক্রিয়ায় প্রেরণের আগে পরিবর্তন করতে হবে ।

একটি ভাল উপায় আছে কি?


আমি ইউআরএলগুলিতে আন্ডারস্কোরগুলিতে ড্যাশগুলি পছন্দ করি (পাশাপাশি এইচটিএমএল / সিএসএস উপাদান আইডি, নাম এবং ক্লাসে) তবে আমি এটি প্রয়োগ করার চেষ্টা করি নি। আমি প্রথমে 3 রেলগুলিতে স্থানান্তর করব এবং তারপরে এটি সম্পর্কে চিন্তিত হব কারণ রেল 3 এর মিডলওয়্যার এবং রাউটিংয়ে প্রচুর কঠোর আপগ্রেড রয়েছে।
yfeldblum

ধন্যবাদ বিচারপতি। আমি আপগ্রেড না করা এবং v3 এর সাথে পরিচিত হওয়া অবধি বন্ধ রাখব।
pduey

উত্তর:


74

রেল 3 এবং এর পরে আপনি এটির মতো করতে পারেন:

resources :user_bundles, :path => '/user-bundles'

আর একটি বিকল্পটি একটি ইনিশিয়ালাইজারের মাধ্যমে, রেলগুলি সংশোধন করা। যদিও আমি এটির প্রস্তাব দিই না, যেহেতু এটি ভবিষ্যতের সংস্করণগুলিতে ভেঙে যেতে পারে (সম্পাদনা করুন: রেল 5 এ কাজ করে না)।

:pathউপরে প্রদর্শিত হিসাবে ব্যবহার করা ভাল।

# Using private APIs is not recommended and may break in future Rails versions.
# https://github.com/rails/rails/blob/4-1-stable/actionpack/lib/action_dispatch/routing/mapper.rb#L1012
#
# config/initializers/adjust-route-paths.rb
module ActionDispatch
  module Routing
    class Mapper
      module Resources
        class Resource
          def path
            @path.dasherize
          end
        end
      end
    end
  end
end

4
আমি রিলে একেবারে নতুন। আপনি কোন ফাইলের মধ্যে এই জাতীয় একটি লাইন যুক্ত করবেন?
অ্যালান ডাব্লু স্মিথ

4
হাইফেনের নীচে থাকা সমস্ত রুটকে রূপান্তর করার জন্য আরও ভাল এবং দ্রুততর উপায় হতে হবে
কার্বনার

4
@ কার্বনর কীভাবে উদাহরণটি আমি যুক্ত করেছি? :)
বালুচর

পছন্দ করুন মিষ্টি!
কার্বনার

4
দুর্ভাগ্যক্রমে এই বানর প্যাচটি আর 5. টির জন্য কাজ করে না এটি 5. কারও কাছে রেল 5 এর জন্য একটি আপডেট স্ক্রিপ্ট থাকলে এটি অনেক প্রশংসিত হবে।
কেলসি হান্নান

4

ড্যাশগুলি ব্যবহার করতে আপনি ওভারলোড কন্ট্রোলার এবং ক্রিয়া নামগুলি করতে পারেন:

# config/routes.rb
resources :my_resources, path: 'my-resources' do
  collection do
    get 'my-method', to: :my_method
  end
end

আপনি কনসোলে পরীক্ষা করতে পারেন:

rails routes -g my_resources
my_method_my_resources GET  /my-resources/my-method(.:format) my_resources#my_method

2

আপনি নামযুক্ত রুটগুলি ব্যবহার করতে পারেন। এটি '-' শব্দটি পৃথককারী হিসাবে ব্যবহার করার অনুমতি দেবে। রুটস.আরবিতে,

map.name_of_route     'a-b-c',       :controller => 'my_controller', :action => "my_action"

এখন http: // my_application / abc এর মতো url নির্দিষ্ট কন্ট্রোলার এবং অ্যাকশনে যাবে।

এছাড়াও, গতিশীল url তৈরির জন্য

map.name_of_route    'id1-:id2-:id3',       :controller => 'my_controller', :action => "my_action"

এই ক্ষেত্রে আইডি 1, আইডি 2 এবং আইডি 2 কর্মের জন্য HTTP প্যারাম হিসাবে পাস হবে

আপনার ক্রিয়া এবং দর্শনগুলিতে,

name_of_route_url(:id1=>val1, :id2=>val2, :id3=>val3) 

url ' http: // my_application / val1-val2-val3 ' এর মূল্যায়ন করবে ।


4
আমি রাউটিংটির ম্যানুয়াল রক্ষণাবেক্ষণ এড়াতে চাই, নামকরণ করা রুটগুলি বাইরে। আমি কেবল চাই রেলগুলি আমার জন্য পাইকারি প্রতিস্থাপনটি করে এবং আমার কনফিগারেশন ফাইলগুলি শক্ত করে রাখে।
pduey

2

আপনি যদি কোনও নিয়ামক হিসাবে আন্ডারস্কোর ব্যবহার করেন এবং ফাইল দেখেন তবে কেবল আপনার রুট ফাইলে ড্যাশগুলি ব্যবহার করুন, এবং এটি কার্যকর হবে ..

'ব্লগ / উদাহরণ-পাঠ্য' পান এই নিয়ামকের জন্য এটি আমার রুট

Def উদাহরণ_text শেষ <- এটি আমার নিয়ামক

এবং উদাহরণ_text.html.erb ফাইল

এবং এটি হ'ল আসল লিঙ্ক সাইট.com/blog/example-text

আমি বুঝতে পেরেছি এটি আমার পক্ষে কাজ করে এবং এটি এসইও বুদ্ধিমানের চেয়ে বেশি কার্যকর

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.