คำถามติดแท็ก ruby

Ruby เป็นหลายภาษาแพลตฟอร์มตีความโอเพ่นซอร์สเชิงวัตถุแบบไดนามิกที่สร้างขึ้นโดย Yukihiro Matsumoto (Matz) ในปี 1995 แท็ก [ruby] สำหรับคำถามที่เกี่ยวข้องกับภาษา Ruby รวมถึงไวยากรณ์และห้องสมุดของมัน ควรติดแท็กคำถาม Ruby on Rails ด้วย [ruby-on-rails]


4
delete_all vs destroy_all?
ฉันกำลังมองหาวิธีที่ดีที่สุดในการลบบันทึกออกจากตาราง ตัวอย่างเช่นฉันมีผู้ใช้ที่มี ID ผู้ใช้อยู่ในหลาย ๆ ตาราง ฉันต้องการลบผู้ใช้นี้และทุกระเบียนที่มี ID ของเขาในตารางทั้งหมด u = User.find_by_name('JohnBoy') u.usage_indexes.destroy_all u.sources.destroy_all u.user_stats.destroy_all u.delete งานนี้และลบข้อมูลทั้งหมดของผู้ใช้จากตารางทั้งหมด แต่ผมได้ยินมาว่าเป็นอย่างมากกระบวนการหนักดังนั้นฉันพยายามdestroy_all delete_allมันจะลบผู้ใช้ออกจากตารางผู้ใช้ของเขาเองและidจากตารางอื่น ๆ ทั้งหมดจะถูกทำให้เป็นโมฆะ แต่จะทำให้ระเบียนนั้นไม่เปลี่ยนแปลง ใครสามารถแบ่งปันสิ่งที่กระบวนการที่ถูกต้องสำหรับการทำงานเช่นนี้? ฉันเห็นว่าdestroy_allเรียกใช้destroyฟังก์ชันบนวัตถุที่เกี่ยวข้องทั้งหมด แต่ฉันต้องการยืนยันวิธีการที่ถูกต้อง

9
ข้อมูลจำเพาะที่ไม่ได้รับการแก้ไขระหว่าง Gem :: Specification.reset:
เมื่อเปิดตัว Guard ฉันได้รับผลลัพธ์นี้: $ guard WARN: Unresolved specs during Gem::Specification.reset: lumberjack (>= 1.0.2) ffi (>= 0.5.0) WARN: Clearing out unresolved specs. Please report a bug if this causes problems. สิ่งนี้หมายความว่าอย่างไรและฉันจะแก้ไขได้อย่างไร เนื้อหาของ Guardfile: guard 'livereload' do watch(%r{.+\.(css|js|html)$}) end guard 'sass', :input => 'css', :style => :compressed, :extension => '.min.css'
192 ruby  rubygems  guard 


4
Rails: dependent =>: destroy VS: dependent =>: delete_all
ในคู่มือรางจะมีคำอธิบายเช่นนี้: วัตถุจะถูกทำลายนอกจากนี้หากพวกเขาเกี่ยวข้อง:dependent => :destroyและถูกลบหากพวกเขาเกี่ยวข้อง:dependent => :delete_all ถูกต้องเท่ห์ แต่อะไรคือความแตกต่างระหว่างการถูกทำลายและการลบ? ฉันลองทั้งคู่แล้วดูเหมือนจะทำแบบเดียวกัน

8
จะปัดเศษทศนิยมเฉลี่ย 2 ตำแหน่งใน PostgreSQL ได้อย่างไร
ฉันใช้ PostgreSQL ผ่าน Ruby gem 'sequel' ฉันพยายามปัดทศนิยมสองตำแหน่ง นี่คือรหัสของฉัน: SELECT ROUND(AVG(some_column),2) FROM table ฉันได้รับข้อผิดพลาดต่อไปนี้: PG::Error: ERROR: function round(double precision, integer) does not exist (Sequel::DatabaseError) ฉันจะไม่ผิดพลาดเมื่อฉันเรียกใช้รหัสต่อไปนี้: SELECT ROUND(AVG(some_column)) FROM table ไม่มีใครรู้ว่าฉันกำลังทำอะไรผิดหรือเปล่า?
192 sql  ruby  postgresql  sequel 

9
วิธีการแทนที่คีย์แฮชด้วยคีย์อื่น
ฉันมีเงื่อนไขที่ฉันได้รับแฮช hash = {"_id"=>"4de7140772f8be03da000018", .....} และฉันต้องการแฮชนี้เป็น hash = {"id"=>"4de7140772f8be03da000018", ......} PS : ฉันไม่รู้ว่าอะไรคือกุญแจในแฮชพวกมันสุ่มซึ่งมาพร้อมกับคำนำหน้า "_" สำหรับทุกคีย์และฉันไม่ต้องการขีดเส้นใต้

9
Array to Hash Ruby
ตกลงดังนั้นนี่คือข้อตกลงฉันได้รับ googling สำหรับทุกเพศทุกวัยเพื่อหาวิธีการแก้ปัญหานี้และในขณะที่มีจำนวนมากออกมีพวกเขาดูเหมือนจะไม่ทำงานที่ฉันกำลังมองหา โดยทั่วไปฉันมีโครงสร้างแบบนี้ ["item 1", "item 2", "item 3", "item 4"] ฉันต้องการแปลงมันให้เป็นแฮชดังนั้นมันจึงเป็นแบบนี้ { "item 1" => "item 2", "item 3" => "item 4" } นั่นคือรายการที่อยู่ในดัชนี 'คู่' คือกุญแจและรายการในดัชนี 'แปลก' คือค่า แนวคิดใดที่จะทำสิ่งนี้อย่างหมดจด? ฉันคิดว่าวิธีการเดรัจฉานกำลังจะดึงดัชนีแม้ทั้งหมดลงในอาร์เรย์ที่แยกต่างหากแล้ววนรอบพวกเขาเพื่อเพิ่มค่า
192 ruby  arrays  hashmap 


11
มีสิ่งที่ตรงกันข้ามหรือไม่? สำหรับ Ruby Arrays
ฉันมีตรรกะดังต่อไปนี้ในรหัสของฉัน: if !@players.include?(p.name) ... end @playersเป็นอาร์เรย์ มีวิธีการ!หรือไม่ดังนั้นฉันจึงสามารถหลีกเลี่ยง โดยหลักแล้วตัวอย่างนี้จะเป็น: if @players.does_not_include?(p.name) ... end

1
ฉันจะสร้างอาร์เรย์ว่างใน YAML ได้อย่างไร
array_with_three_elements: - 1 - 2 - 3 empty_array: มีวิธีใดที่จะระบุว่า empty_array: เป็นอาร์เรย์ที่ไม่มีอิลิเมนต์เช่น with []หรือไม่ เมื่อฉันโหลดมันลงในแฮชทับทิมฉันต้องการให้มันรู้ว่ามันเป็นอาร์เรย์ ขอบคุณ
190 ruby  arrays  yaml 


2
วิธีทำชื่อเข้าร่วมที่ปลอดภัยในทับทิม?
สภาพแวดล้อมการพัฒนาของฉัน Rails นั้นใช้ Windows และสภาพแวดล้อมการผลิตของฉันนั้นใช้ Linux เป็นไปได้ว่าจะใช้ VirtualHost สมมติว่าชื่อไฟล์หนึ่งจะต้องมีการอ้างอิงในโฟลเดอร์ที่มี/publicFile.open('/tmp/abc.txt', 'r') -but ใน Windows C:\tmp\abc.txtมันควรจะเป็น ฉันจะทำเส้นทางที่ถูกต้องให้เข้าร่วมเพื่อจัดการกับสองสภาพแวดล้อมที่แตกต่างกันได้อย่างไร prefix_tmp_path = '/tmp/' filename = "/#{rand(10)}.txt" fullname = prefix_tmp_path + filename # /tmp//1.txt <- but I don't want a double // และเมื่อprefix_tmp_path = "C:\tmp\"ฉันได้รับC:\tmp\/1.txt วิธีที่ถูกต้องในการจัดการทั้งสองกรณีคืออะไร?
189 ruby 

2
ทดสอบว่าคลาส Ruby เป็นคลาสย่อยของคลาสอื่นหรือไม่
ฉันต้องการทดสอบว่าคลาสสืบทอดจากคลาสอื่นหรือไม่ แต่ดูเหมือนว่าจะไม่มีวิธีสำหรับสิ่งนั้น class A end class B < A end B.is_a? A => false B.superclass == A => true การใช้งานเล็กน้อยของสิ่งที่ฉันต้องการจะเป็น: class Class def is_subclass_of?(clazz) return true if superclass == clazz return false if self == Object superclass.is_subclass_of?(clazz) end end แต่ฉันคาดหวังว่าสิ่งนี้จะมีอยู่แล้ว


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.