আমি কীভাবে আমার রেলস অ্যাপ্লিকেশনটির মূল ডিরেক্টরিটি পাব?
আমি কীভাবে আমার রেলস অ্যাপ্লিকেশনটির মূল ডিরেক্টরিটি পাব?
উত্তর:
কারাগারে 3 এবং আরও নতুন:
Rails.root
যা কোনও Pathname
বস্তু ফেরত দেয় । আপনি যদি একটি স্ট্রিং চান তবে আপনাকে যুক্ত করতে হবে .to_s
। আপনি যদি আপনার রেলস অ্যাপ্লিকেশনটিতে অন্য কোনও পথ চান, আপনি এটি ব্যবহার করতে পারেন join
:
Rails.root.join('app', 'assets', 'images', 'logo.png')
রেল 2 এ আপনি RAILS_ROOT
ধ্রুবকটি ব্যবহার করতে পারেন যা একটি স্ট্রিং।
Rails.root.join(*%w( app assets images logo.png ))
।
Rails.root / 'app' / 'assets' / 'images' / 'logo.png'
অত্যন্ত নির্ভুলতার জন্য আপনার ব্যবহার করা উচিত:
Rails.root.join('foo','bar')
যা আপনার অ্যাপ্লিকেশনটিকে এমন প্ল্যাটফর্মগুলিতে কাজ করার মঞ্জুরি দেয় যেখানে /
ডিরেক্টরি বিভাজক নয়, কেউ যদি চেষ্টা করে এটির মাধ্যমে চালায়।
Rails.root.join('foo','bar')
এমন প্যাথনাম অবজেক্টের মূল্যায়ন করুন যার @path '/ ব্যবহারকারী / বেগুনি জ্যাকেট / my_rails_app / foo / বার'
আপনি ভেরিয়েবল ব্যবহার করে রেল অ্যাপ পাথ অ্যাক্সেস করতে পারেন RAILS_ROOT
।
উদাহরণ স্বরূপ:
render :file => "#{RAILS_ROOT}/public/layouts/mylayout.html.erb"
অন্য সমস্ত সঠিক উত্তর ছাড়াও যেহেতু Rails.root
একটি Pathname
বস্তু, এটি কাজ করবে না:
Rails.root + '/app/assets/...'
আপনি যেমন কিছু ব্যবহার করতে পারে join
Rails.root.join('app', 'assets')
আপনি যদি স্ট্রিং চান তবে এটি ব্যবহার করুন:
Rails.root.join('app', 'assets').to_s
Rails.root + 'app/assets'
করে তবে হ্যাঁ আরও সুন্দর join
ne
কিছু ক্ষেত্রে আপনি রেলগুলি লোড না করেই রেলগুলি রুট করতে পারেন।
উদাহরণস্বরূপ, টিডিডি'র মডেলগুলি যেগুলির spec_helper
পরিবর্তে প্রয়োজনীয়তার মাধ্যমে রেলের উপর নির্ভর করে না আপনি যখন একটি দ্রুত প্রতিক্রিয়া চক্র পাবেন rails_helper
।
# spec/spec_helper.rb
require 'pathname'
rails_root = Pathname.new('..').expand_path(File.dirname(__FILE__))
[
rails_root.join('app', 'models'),
# Add your decorators, services, etc.
].each do |path|
$LOAD_PATH.unshift path.to_s
end
যা আপনাকে সাদামাটা পুরানো রুবি অবজেক্টগুলি সহজেই তাদের নির্দিষ্ট ফাইলগুলি থেকে লোড করতে দেয়।
# spec/models/poro_spec.rb
require 'spec_helper'
require 'poro'
RSpec.describe ...
তুমি ব্যবহার করতে পার:
Rails.root
তবে যে সম্পদগুলি আপনি ব্যবহার করতে পারেন তাতে যোগদান করতে:
Rails.root.join(*%w( app assets))
আশা করি এটি আপনাকে সহায়তা করবে।