ActiveRecord::Base.connection
একটি quote
পদ্ধতি রয়েছে যা স্ট্রিংয়ের মান (এবং বিকল্পভাবে কলামের অবজেক্ট) নেয়। সুতরাং আপনি এটি বলতে পারেন:
ActiveRecord::Base.connection.execute(<<-EOQ)
UPDATE foo
SET bar = #{ActiveRecord::Base.connection.quote(baz)}
EOQ
নোট করুন যদি আপনি একটি রেল স্থানান্তর বা একটি অ্যাক্টিভেকর্ড অবজেক্টে থাকেন তবে আপনি এটি সংক্ষিপ্ত করতে পারেন:
connection.execute(<<-EOQ)
UPDATE foo
SET bar = #{connection.quote(baz)}
EOQ
আপডেট: @ কোলেন যেমন উল্লেখ করেছেন, আপনার exec_update
পরিবর্তে এটি ব্যবহার করা উচিত । এটি আপনার জন্য উদ্ধৃতি পরিচালনা করবে এবং মেমরি ফাঁস করা এড়াবে। স্বাক্ষরটি কিছুটা আলাদাভাবে কাজ করে যদিও:
connection.exec_update(<<-EOQ, "SQL", [[nil, baz]])
UPDATE foo
SET bar = $1
EOQ
এখানে শেষ প্যারামটি বাইন্ড প্যারামিটারগুলি উপস্থাপন করে এমন টিউপসগুলির একটি অ্যারে is প্রতিটি টিপলে প্রথম এন্ট্রিটি কলামের ধরণ এবং দ্বিতীয়টি মান। আপনি nil
কলামের ধরণের জন্য দিতে পারেন এবং সাধারণভাবে যদিও রেলগুলি সঠিক কাজটি করে।
এছাড়াও রয়েছে exec_query
, exec_insert
এবং exec_delete
আপনার যা প্রয়োজন তার উপর নির্ভর করে।