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

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

4
สร้างตัวแปรโมดูลใน Ruby
มีวิธีใดในการสร้างตัวแปรในโมดูลใน Ruby ที่จะทำงานคล้ายกับตัวแปรคลาสหรือไม่? สิ่งที่ฉันหมายถึงคือมันจะสามารถเข้าถึงได้โดยไม่ต้องเริ่มต้นอินสแตนซ์ของโมดูล แต่สามารถเปลี่ยนแปลงได้ (ไม่เหมือนกับค่าคงที่ในโมดูล)

4
RSpec: จะทดสอบได้อย่างไรว่ามีการเรียกเมธอดหรือไม่?
เมื่อเขียนการทดสอบ RSpec ฉันพบว่าตัวเองเขียนโค้ดจำนวนมากที่มีลักษณะเช่นนี้เพื่อให้แน่ใจว่ามีการเรียกวิธีการในระหว่างการดำเนินการทดสอบ (เพื่อประโยชน์ในการโต้แย้งสมมติว่าฉันไม่สามารถซักถามสถานะได้จริงๆ ของวัตถุหลังจากการโทรเนื่องจากการดำเนินการที่วิธีการดำเนินการไม่ใช่เรื่องง่ายที่จะเห็นผลของ) describe "#foo" it "should call 'bar' with appropriate arguments" do called_bar = false subject.stub(:bar).with("an argument I want") { called_bar = true } subject.foo expect(called_bar).to be_true end end สิ่งที่ฉันอยากรู้คือ: มีไวยากรณ์ที่ดีกว่านี้หรือไม่? ฉันคิดถึง RSpec สุดเจ๋งที่จะลดโค้ดด้านบนลงเหลือสองสามบรรทัดหรือไม่? should_receiveดูเหมือนว่าควรทำเช่นนี้ แต่อ่านเพิ่มเติมดูเหมือนว่าจะไม่ตรงกับสิ่งที่ทำ



4
วิธีเขียนลงไฟล์ JSON ในรูปแบบที่ถูกต้อง
ฉันกำลังสร้างแฮชใน Ruby และต้องการเขียนลงในไฟล์ JSON ในรูปแบบที่ถูกต้อง นี่คือรหัสของฉัน: tempHash = { "key_a" => "val_a", "key_b" => "val_b" } fJson = File.open("public/temp.json","w") fJson.write(tempHash) fJson.close และนี่คือเนื้อหาของไฟล์ผลลัพธ์: key_aval_akey_bval_b ฉันใช้ Sinatra (ไม่รู้ว่ารุ่นอะไร) และ Ruby v 1.8.7 ฉันจะเขียนสิ่งนี้ลงในไฟล์ในรูปแบบ JSON ที่ถูกต้องได้อย่างไร
111 ruby  json  file 

4
ความแตกต่างระหว่าง gsub และวิธีย่อยสำหรับ Ruby Strings คืออะไร
ฉันได้อ่านเอกสารสำหรับStringวันนี้และฉันเห็น:subวิธีการซึ่งฉันไม่เคยสังเกตมาก่อน ฉันใช้:gsubและปรากฏว่ามันเหมือนกันเป็นหลัก ใครช่วยอธิบายความแตกต่างให้ฉันได้ไหม ขอบคุณ!
111 ruby  string 

5
ความแตกต่างระหว่าง '.. ' (double-dot) และ '…' (triple-dot) ในการสร้างช่วง?
ฉันเพิ่งเริ่มเรียนรู้ Ruby และ Ruby บน Rails และเจอรหัสตรวจสอบที่ใช้ช่วง: validates_inclusion_of :age, :in => 21..99 validates_exclusion_of :age, :in => 0...21, :message => "Sorry, you must be over 21" ตอนแรกฉันคิดว่าความแตกต่างอยู่ที่การรวมจุดสิ้นสุด แต่ในเอกสาร API ที่ฉันตรวจสอบดูเหมือนจะไม่สำคัญว่าจะเป็น..หรือ...: มันรวมจุดสิ้นสุดไว้เสมอ อย่างไรก็ตามฉันได้ทำการทดสอบใน irb และดูเหมือนว่าจะระบุว่า..มีทั้งสองจุดสิ้นสุดในขณะที่...รวมเฉพาะขอบเขตล่าง แต่ไม่ใช่จุดบน ถูกต้องหรือไม่
111 ruby  syntax  range 

4
Ruby on Rails: คุณจะเพิ่มเลขศูนย์หน้าตัวเลขได้อย่างไรถ้ามันต่ำกว่า 10?
ฉันต้องการแปลงตัวเลขหลักเดียวเป็นตัวเลขสองหลักดังนี้: 9 ==> 09 5 ==> 05 12 == 12 4 ==> 04 ฉันคิดว่าฉันสามารถใส่คำสั่ง if-else จำนวนหนึ่ง (ถ้าตัวเลขต่ำกว่า 10 ให้ทำ gsub) แต่รูปที่เขียนโค้ดแย่มาก ฉันรู้ว่า Rails มี number_with_precision แต่ฉันเห็นว่ามันใช้กับเลขฐานสิบเท่านั้น มีแนวคิดเกี่ยวกับวิธีการแปลงตัวเลขหลักเดียวเป็นสองหลักหรือไม่?

2
Rails: บันทึกการติดตามสแต็กทั้งหมดของข้อยกเว้น
ฉันพยายามหาวิธีที่ถูกต้องในการบันทึกการติดตามสแต็ก ฉันเจอลิงค์นี้ซึ่งระบุว่าlogger.error $ !, $ !. backtraceเป็นวิธีที่จะไป แต่มันไม่ได้ผลสำหรับฉันที่log_errorทำ ตามเอกสารประกอบฉันไม่เห็นว่าการส่งอาร์กิวเมนต์ที่สองไปยังเมธอดข้อผิดพลาดจะใช้ได้ผลอย่างไรเพราะคนตัดไม้ทับทิมที่รางใช้ยอมรับอาร์กิวเมนต์เดียวเท่านั้น แปลก (หรืออาจจะไม่ใช่) ข้อโต้แย้งที่สองได้รับการยอมรับโดยไม่มีการร้องเรียนจากล่าม อย่างไรก็ตามสิ่งใดก็ตามที่ฉันผ่านไปมันถูกละเว้น ใครสามารถอธิบายสิ่งที่ฉันขาดหายไป? มีความเข้าใจอย่างถ่องแท้ว่าอาร์กิวเมนต์ข้อผิดพลาดที่สองมีไว้เพื่ออะไรและกินอะไร


4
Rubocop Linelength: จะเพิกเฉยต่อความคิดเห็นได้อย่างไร?
การใช้แอพ Rails 4 ฉันต้องการให้ Rubocop ละเว้นบรรทัดที่มีความคิดเห็น (เป็นเพียงความคิดเห็นหรือโค้ดบางส่วนที่มีความคิดเห็นท้ายบรรทัด) เมื่อตรวจสอบว่าบรรทัดยาวหรือไม่ มีวิธีทำไหม?
110 ruby  rubocop 

30
เกิดข้อผิดพลาดในการติดตั้ง Nokogiri บน OSX 10.9 Maverick?
ฉันอัปเกรด OSX (Lion) เป็น Mavericks และไม่สามารถติดตั้ง Nokogiri สำหรับโปรเจ็กต์ของฉันได้ ฉันติดตั้ง XCode 5.0.1, Command Line Tools (โดยใช้xcode-select --install) และติดตั้ง libxml2 จาก Homebrew แล้วและฉันยังคงมีปัญหา ข้อผิดพลาดคือ: Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb checking for libxml/parser.h... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of …

11
Ruby 1.9: ลำดับไบต์ที่ไม่ถูกต้องใน UTF-8
ฉันกำลังเขียนโปรแกรมรวบรวมข้อมูลใน Ruby (1.9) ซึ่งใช้ HTML จำนวนมากจากไซต์สุ่มจำนวนมาก เมื่อพยายามแยกลิงก์ฉันตัดสินใจใช้.scan(/href="(.*?)"/i)แทน nokogiri / hpricot (การเร่งความเร็วที่สำคัญ) ปัญหาคือตอนนี้ฉันได้รับinvalid byte sequence in UTF-8ข้อผิดพลาด "" จำนวนมาก จากสิ่งที่ฉันเข้าใจnet/httpไลบรารีไม่มีตัวเลือกเฉพาะในการเข้ารหัสและสิ่งที่เข้ามานั้นไม่มีแท็กอย่างถูกต้อง วิธีใดเป็นวิธีที่ดีที่สุดในการทำงานกับข้อมูลที่เข้ามาจริง ฉันลอง.encodeใช้ชุดตัวเลือกการแทนที่และไม่ถูกต้อง แต่ยังไม่ประสบความสำเร็จ ...
109 ruby  encoding  utf-8 


11
Ruby / Rails - เปลี่ยนเขตเวลาของเวลาโดยไม่ต้องเปลี่ยนค่า
ฉันมีบันทึกfooในฐานข้อมูลที่มี:start_timeและ:timezoneคุณลักษณะ :start_timeเป็นเวลาใน UTC - การ2001-01-01 14:20:00ยกตัวอย่างเช่น :timezoneเป็นสตริง - America/New_Yorkยกตัวอย่างเช่น ฉันต้องการที่จะสร้างวัตถุเวลาใหม่ที่มีค่าของแต่มีเขตเวลาที่ระบุไว้โดย:start_time :timezoneฉันไม่ต้องการโหลด:start_timeแล้วแปลงเป็น:timezoneเพราะ Rails จะฉลาดและอัปเดตเวลาจาก UTC ให้สอดคล้องกับเขตเวลานั้น ปัจจุบัน t = foo.start_time => 2000-01-01 14:20:00 UTC t.zone => "UTC" t.in_time_zone("America/New_York") => Sat, 01 Jan 2000 09:20:00 EST -05:00 แต่ฉันอยากเห็น => Sat, 01 Jan 2000 14:20:00 EST -05:00 กล่าวคือ. ฉันต้องการทำ: t => 2000-01-01 14:20:00 …

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