রেলস: রেলস কনসোল ব্যবহার করে কীভাবে ডাটাবেস টেবিল / অবজেক্ট তালিকাভুক্ত করবেন?


148

আমি ভাবছিলাম যে আপনি কীভাবে রেল কনসোলে আপনার কাছে কোন ডাটাবেস / অবজেক্টগুলি উপলব্ধ তা তালিকাভুক্ত / পরীক্ষা করতে পারবেন। আমি জানি আপনি অন্যান্য সরঞ্জামগুলি ব্যবহার করে এগুলি দেখতে পাচ্ছেন, আমি কেবল কৌতূহলী। ধন্যবাদ।


2
যদিও স্ক্রিপ্ট / ডিবিকনসোল এর জন্য
hgmnz

হ্যাঁ, এটি আপনাকে মাইএসকিএল (বা যাই হোক না কেন) এ ফেলে দেয়। কিছু অপরিচিত কারণে আমি নিয়মিত কনসোল থেকে কলাম / টেবিল ইত্যাদি তালিকাবদ্ধ করতে চাই। আমি ভাবছি যে এটির জন্য কাস্টম তৈরি রুবি পদ্ধতি প্রয়োজন হতে পারে।
rtfminc

উত্তর:


305

আপনি সম্ভবত খুঁজছেন:

ActiveRecord::Base.connection.tables

এবং

ActiveRecord::Base.connection.columns('projects').map(&:name)

আপনার সম্ভবত তাদের মধ্যে সংক্ষিপ্ত বাক্য গঠনতে মোড়ানো উচিত .irbrc


3
ধন্যবাদ, প্রথমটি আমার মতো কাজ করে। তবে দ্বিতীয়টি হ'ল না - অনুরূপ কোনও কিছুর জন্য শিকার হয়েছিল কিন্তু ভাগ্য নেই।
rtfminc

12
অ্যাক্টিভেকর্ড :: বেস.কননিশন.কোলোমগুলি ("foos") ব্যবহার করা উচিত, তবে এটি কলামের অবজেক্টগুলি প্রদান করে।। ম্যাপ {| সি | [c.name, c.type]} শেষে এটি স্থির করে।
cwninja

27
table_structureস্ক্লাইট অ্যাডাপ্টারের সাথে নির্দিষ্ট বলে মনে হচ্ছে।
কেলভিন

4
রেলস 4 এর জন্য সারণী কলামগুলি তালিকা করতে মডেল কলাম_নাম ব্যবহার করুন
স্টিফেন প্রোভিস

4
4 রেলগুলিতে , আপনি কলামগুলি এবং তাদের ডেটা ধরণের তালিকা পেতে কেবল মডেলনাম ব্যবহার করতে পারেন ।
থিম্যাটাকল্লি শো

20

আমি আশা করি আমার দেরী উত্তরটি কিছুটা সহায়ক হতে পারে।
এটি রেল ডাটাবেস কনসোলে যাবে।

rails db

আপনার কোয়েরি আউটপুট প্রিন্ট করুন

.headers on
.mode columns
(turn headers on and show database data in column mode )

টেবিলগুলি দেখান

.table

সহায়তা দেখুন '.হেল্প'।
অথবা এসকিউএল স্টেটমেন্টগুলি যেমন 'গাড়ি থেকে নির্বাচন করুন' ব্যবহার করুন


7
'Rails dbconsole' আপনাকে যে কোনও ডাটাবেস ইঞ্জিন ব্যবহার করছে তার কমান্ড লাইন ইন্টারপ্রেটারে (সিএলআই) রাখে ... উপরের এসকিউএলাইট কমান্ডগুলি ... পোস্টগ্রিস উদাহরণস্বরূপ, টেবিলগুলি তালিকাবদ্ধ করতে 't dt' ব্যবহার করবে ...
টম হুন্ড 21

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

7

সমস্ত মডেল ক্লাসের একটি তালিকা পেতে, আপনি ActiveRecord::Base.subclassesউদাহরণস্বরূপ ব্যবহার করতে পারেন

ActiveRecord::Base.subclasses.map { |cl| cl.name }
ActiveRecord::Base.subclasses.find { |cl| cl.name == "Foo" }

1
এছাড়াও:ActiveRecord::Base.descendants.map(&:name)
ভাল

4

rails dbconsoleআপনার রেল অ্যাপ্লিকেশন যে ডাটাবেসটি ব্যবহার করছে তা আপনি দেখতে ব্যবহার করতে পারেন । এটি বিকল্প উত্তর rails db। উভয় কমান্ড আপনাকে কমান্ড লাইন ইন্টারফেসকে নির্দেশিত করবে এবং আপনাকে সেই ডাটাবেস ক্যোয়ারী সিনট্যাক্স ব্যবহার করার অনুমতি দেবে।


0

এটি চালান:

Rails.application.eager_load! 

তারপর

ActiveRecord::Base.descendants

মডেল / টেবিলের একটি তালিকা ফেরত দিতে


-3

এটি একটি সূচনা, এটি তালিকাবদ্ধ করতে পারে:

models = Dir.new("#{RAILS_ROOT}/app/models").entries

আরও কিছু খুঁজছেন ...


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