কোনও ডাটাবেস ছাড়াই কিভাবে রুবেলগুলিকে রেলগুলিতে কনফিগার করবেন?


102

একটি ছোট ওয়েবসাইট প্রকল্পের জন্য রুবে অন রেল ব্যবহার করা সুবিধাজনক হবে যার কোনও ডাটাবেসের প্রয়োজন নেই। আমি জানি যে আমি মাইএসকিউএলে একটি খালি ডেটাবেস তৈরি করতে এবং সেখান থেকে যেতে পেরেছি, তবে কি কোনও ডাটাবেস ছাড়াই রেল চালানোর আরও ভাল উপায় জানেন?

ধন্যবাদ

উত্তর:


55

environment.rbফাইলটিতে এই লাইনটি মন্তব্য করুন:

config.frameworks -= [ :active_record, :active_resource, :action_mailer]

2
রেল 3 এ কেবল জেমফাইল থেকে মাইএসকিএল রত্নটি সরিয়ে ফেলুন
jspooner

31
আপনি কীভাবে 4 রেলগুলিতে একই কাজ করবেন?
ড্যানিয়েল রিস্টিক

2
পাগল 4 প্রশ্নটি stackoverflow.com/questions/19078044/...
grumpasaurus

108

জন্য পাগল 3 এবং পাগল 4 :

ডেটাবেস ছাড়াই অ্যাপ্লিকেশন উত্পন্ন করতে -O(মূলধন 'ও') বা --skip-activerecordবিকল্প ব্যবহার করুন ।

rails new myApp -O

অথবা

rails new myApp --skip-activerecord

এই উত্তরটি এখান থেকে পুনরায় ভাগ করা হয়েছে


5 রেলের জন্য :

--skip-active-recordকোনও ডাটাবেস ছাড়াই অ্যাপ্লিকেশন তৈরি করতে বিকল্পটি ব্যবহার করুন

পূর্ববর্তী রেল সংস্করণগুলির বিপরীতে অতিরিক্ত হাইফেন '-' লক্ষ্য করুন

rails new myApp --skip-active-record


2
হ্যাঁ, এটি রেল 4 :) এর সাথে কাজ করে - কেবলমাত্র বৈধ। আপনি যদি পরীক্ষা ইউনিটের ব্যবহারটি খাঁজতে চান: রেলগুলি নতুন মাইএপ-ও - স্কিপ-বান্ডেল-টি
ক্রিস হাফ

1
আপনি যদি স্ক্র্যাচ থেকে শুরু করে থাকেন তবে নিশ্চিতভাবেই এটি যাওয়ার সহজতম উপায়, যদিও আপনাকে সতর্ক করে দেওয়া হবে (কমপক্ষে ails.০.১.২ কারাগারে) সেই কমান্ডটিতে সক্রিয় এবং রেকর্ডের মধ্যে একটি '-' রয়েছে। সুতরাং এটি পড়তে হবে: রেলগুলি নতুন মাই অ্যাপ - স্কিপ-অ্যাক্টিভ-রেকর্ড
নিক বেন্ডার্স

1
আমি কেবল সমস্যার মুখোমুখি হয়েছি এবং লক্ষ্য করেছি। রেলের জন্য 4.2.x কেবল -Oকাজ করে। বিকল্পটি --skip-activerecordকাজ করে না।
নজর হুসেন

এটি রেল-এপিআই-তেও কাজ করে: রেলগুলি নতুন মাই অ্যাপ-ও। ধন্যবাদ
হাবিল

2
যে কোনও ক্ষেত্রে যদি অবাক হয়, 5 রেলের মধ্যে এটি --skip-active-record(সক্রিয় নাদের রেকর্ডের মধ্যে ড্যাশটি নোট করুন)। অন্য উপায় আমার জন্য কাজ করে না।
অডিওডুড

53

একটি বিদ্যমান রেল 4/5/6 প্রকল্পের জন্য আপনার config/application.rbফাইলে আপনার নীচের লাইনটি রয়েছে:

require 'rails/all' # or `require "rails"' in newer versions

(রেফারেন্স হিসাবে যে লাইনটি এই ফাইলটি লোড করছে )
সুতরাং সমস্ত লোড করার পরিবর্তে আপনাকে অবশ্যই প্রতিটি লাইব্রেরি পৃথকভাবে লোড করতে হবে:

# active_record is what we're not going to use it, so comment it "just in case"
# require "active_record/railtie" 

# This is not loaded in rails/all but inside active_record so add it if
# you want your models work as expected
require "active_model/railtie" 
# And now the rest
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "active_job/railtie" # Only for Rails >= 4.2
require "action_cable/engine" # Only for Rails >= 5.0
require "sprockets/railtie"
require "rails/test_unit/railtie"

# All these depend on active_record, so they should be excluded also
# require "action_text/engine" # Only for Rails >= 6.0
# require "action_mailbox/engine" # Only for Rails >= 6.0
# require "active_storage/engine" # Only for Rails >= 5.2

আপনার রেল সংস্করণ সম্পর্কিত কী লোড করতে হবে তা জানতে মন্তব্যগুলিতে নজর রাখুন।
নিম্নলিখিত ফাইলগুলি পরীক্ষা করুন (আপনার কাছে সেগুলি রয়েছে) এবং নীচের লাইনে মন্তব্য করুন:

# package.json
"@rails/activestorage": "^6.0.0",

# app/javascript/packs/application.js
require("@rails/activestorage").start()

# bin/setup
system! 'bin/rails db:prepare'

# config/environments/development.rb
config.active_storage.service = :local # For Rails >= 5.2
config.active_record.migration_error = :page_load
config.active_record.verbose_query_logs = true

# config/environments/test.rb
config.active_storage.service = :test # For Rails >= 5.2

# config/environments/production.rb
config.active_storage.service = :local # For Rails >= 5.2
config.active_record.dump_schema_after_migration = false

# spec/rails_helper.rb
ActiveRecord::Migration.maintain_test_schema!

# test/test_helper.rb
fixtures :all # In case you're using fixtures

# Only for Rails >= 5.0
#config/initializers/new_framework_defaults.rb
Rails.application.config.active_record.belongs_to_required_by_default = true

এছাড়াও ActiveRecord::Baseআপনার মডেল ফাইলগুলির যে কোনও রেফারেন্স মুছে ফেলুন (বা যদি প্রয়োগ হয় তবে কেবল ফাইলগুলি মুছুন)। উদাহরণস্বরূপ, স্বয়ংক্রিয়রিত app/models/application_record.rbফাইল।


2
রেল 5 এর জন্য আপনার প্রয়োজনও হতে পারে active_job/railtieএবংaction_cable/engine
ইংমারাস কেরেরাস

2
এটি ব্যবহার করার মতো কোনও ডামি ডিবি অ্যাডাপ্টার নেই database.ymlতাই এটি কেবল ডিবিটিকে উপেক্ষা করবে?
ক্লো 8

5 টি পাগল সক্রিয়_আরকর্ড'এর rake assets:precompileকারণে ব্যর্থ হওয়ার সমস্যার দিকে নিয়ে যায় NoMethodError: undefined method : /
flp

3
@Chloe activerecord-nulldb-adapterথেকে github.com/nulldb/nulldb অস্থায়ী বা কম আক্রমণাত্মক পরিবর্তনের জন্য আপনাকে অ্যাডাপ্টারটি দেয়।
ইউনিকসমনকি

1
@ সিডমো হে, লক্ষ্য করার জন্য ধন্যবাদ আমি এটা সম্পূর্ণরূপে পাগল 6. সব আপনি আপনার উত্তর মন্তব্য সম্পর্কে নিশ্চিত সঙ্গে সামঞ্জস্যপূর্ণ করতে উত্তর আপডেট করেছি আমি এবং ছাড়া 2 পাগল অ্যাপস তৈরি -Oএবং action_mailerসঙ্গে সম্পর্কিত নয় config/detabase.yml, তাই এটি মন্তব্য করার কোন প্রয়োজন নেই। মন্তব্য করার পরে মন্তব্য করার active_storageজন্য কিছু অতিরিক্ত লাইন রয়েছে ।
লেগোস

16

4 টি নতুন কক্ষপথ শুরু করার সময় আপনি -O বা --স্কিপ-সক্রিয়-রেকর্ড ব্যবহার করতে পারেন

rails new my_project -O
rails new my_project --skip-active-record

আপনি যদি ইতিমধ্যে একটি প্রকল্প তৈরি করে থাকেন তবে আপনাকে মন্তব্য করতে হবে

 require "active_record/railtie"

কনফিগার / অ্যাপ্লিকেশন.আরবি থেকে এবং

 config.active_record.migration_error = :page_load

কনফিগারেশন / পরিবেশ / উন্নয়ন.rb থেকে development


14

আপনার যদি কোনও ডাটাবেসের প্রয়োজন না হয় তবে আপনার সম্ভবত প্রচুর পরিমাণে রেল থাকার দরকার নেই। আপনি কাজ করতে আরও একটি আরও কাস্টমাইজযোগ্য কাঠামো চাইবেন।

Sinatra, একটি ক্ষুদ্রতর কাঠামো যা বেসিক স্ট্যাটিক পৃষ্ঠাগুলি পরিবেশন করার জন্য দুর্দান্ত।

তবে আপনি যদি এখানে রেলগুলি ব্যবহার করার বিষয়ে জেদ করেন তবে এটি একটি নিবন্ধ যা আপনাকে কেবল কীভাবে বা এখানে এটি করতে হবে তা দেখায় ।


ধন্যবাদ - এই দুটি লিঙ্কই রেল রেসিপি বইয়ের উল্লেখ করে এবং একটি ডেটাবেস-কম রেল অ্যাপ্লিকেশন দিয়ে টেস্টিংয়ের কাজ করার পদক্ষেপগুলি ধারণ করে। আমি অলস হয়ে গিয়েছিলাম এবং অন্যান্য অ্যাপ্লিকেশনের জন্য সার্ভারে ইতিমধ্যে রেলের অবকাঠামোটি লাভ করার আশাবাদী, তবে সিনতাট্রা আগ্রহজনক দেখাচ্ছে।
রবি ক্যানাক

1
আমি একমত নই অ্যাক্টিভ.কম কোনও ডেটাবেস ছাড়াই রেলের উপর নির্মিত কারণ সমস্ত ডেটা এপিআই থেকে আসে।
jspooner

দ্রষ্টব্য: শেষ বাক্যে দ্বিতীয় লিঙ্কটি আর বিদ্যমান নেই। আমি একটি 404 পাওয়া যায়নি ত্রুটি পেয়েছি।
পামেলা কুক - লাইটবে করপ

0

সমর্থনের জন্য রেলগুলি 6 আরসি 1 এবং activerecord-nulldb-adapter রত্নের জন্য আমাদের একটি বানর প্যাচিং দরকার

ইন কনফিগ / initializers / null_db_adapter_monkey_patches.rb

module ActiveRecord
  module ConnectionAdapters
    class NullDBAdapter < ActiveRecord::ConnectionAdapters::AbstractAdapter
      def new_table_definition(table_name = nil, is_temporary = nil)
        TableDefinition.new(table_name, is_temporary)
      end
    end
  end
end
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.