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

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

6
ทับทิม || = (หรือเท่ากับ) ใน JavaScript?
ฉันรัก||=กลไกของรูบี้ หากไม่มีหรือมีตัวแปรnilให้สร้างและตั้งค่าให้เท่ากับบางสิ่ง: amount # is nil amount ||= 0 # is 0 amount ||= 5 # is 0 ตอนนี้ฉันต้องทำสิ่งที่คล้ายกันใน JavaScript อะไรคือแบบแผนหรือวิธีที่เหมาะสมในการทำเช่นนี้? ฉันรู้ว่า||=ไม่ใช่ไวยากรณ์ที่ถูกต้อง 2 วิธีที่ชัดเจนในการจัดการคือ: window.myLib = window.myLib || {}; // or if (!window.myLib) window.myLib = {};
128 javascript  ruby  syntax 

17
Ruby แปลง Object เป็น Hash
สมมติว่าผมมีGiftวัตถุที่มีและ@name = "book" @price = 15.95วิธีที่ดีที่สุดในการแปลงเป็น Hash {name: "book", price: 15.95}ใน Ruby ไม่ใช่ Rails (แต่อย่าลังเลที่จะตอบ Rails ด้วย)

7
'Ruby way' คืออะไรในการวนซ้ำสองอาร์เรย์พร้อมกัน
ความอยากรู้อยากเห็นทางไวยากรณ์มากกว่าปัญหาในการแก้ ... ฉันมีอาร์เรย์สองอาร์เรย์ที่มีความยาวเท่ากันและต้องการทำซ้ำทั้งสองอาร์เรย์พร้อมกันตัวอย่างเช่นเพื่อส่งออกทั้งสองค่าที่ดัชนีหนึ่ง @budget = [ 100, 150, 25, 105 ] @actual = [ 120, 100, 50, 100 ] ฉันรู้ว่าฉันสามารถใช้each_indexและทำดัชนีในอาร์เรย์ได้ดังนี้: @budget.each_index do |i| puts @budget[i] puts @actual[i] end มีวิธีที่ทับทิมจะทำเช่นนี้ดีขึ้นหรือไม่ อะไรทำนองนี้? # Obviously doesn't achieve what I want it to - but is there something like this? [@budget, @actual].each do |budget, …
127 ruby  arrays  iterator 

11
แนวทางปฏิบัติที่ดีที่สุดในการทำเครื่องหมายรหัสที่เลิกใช้แล้วใน Ruby?
ฉันต้องการทำเครื่องหมายวิธีการว่าเลิกใช้งานแล้วเพื่อให้ผู้ใช้สามารถตรวจสอบโค้ดและติดตามได้อย่างง่ายดาย ใน Java คุณตั้งค่า @Deprecated และทุกคนรู้ว่านี่หมายถึงอะไร จึงมีวิธีที่ต้องการ (หรือแม้แต่เครื่องมือ) ในการทำเครื่องหมายและตรวจสอบการเลิกใช้งานใน Ruby หรือไม่?
127 ruby  deprecated 

14
Uniq โดย object attribute ใน Ruby
วิธีใดที่สวยงามที่สุดในการเลือกอ็อบเจ็กต์ในอาร์เรย์ที่ไม่ซ้ำกันเมื่อเทียบกับแอตทริบิวต์อย่างน้อยหนึ่งรายการ วัตถุเหล่านี้ถูกเก็บไว้ใน ActiveRecord ดังนั้นการใช้วิธีการของ AR ก็ใช้ได้เช่นกัน

7
มรดกทับทิมเทียบกับมิกซ์อิน
ใน Ruby เนื่องจากคุณสามารถรวมมิกซ์อินได้หลายรายการ แต่ขยายได้เพียงคลาสเดียวดูเหมือนว่ามิกซ์อินจะเป็นที่ต้องการมากกว่าการสืบทอด คำถามของฉัน: ถ้าคุณกำลังเขียนโค้ดที่ต้องขยาย / รวมเพื่อเป็นประโยชน์ทำไมคุณถึงทำให้มันเป็นคลาสล่ะ? หรือพูดอีกอย่างทำไมคุณไม่ทำให้มันเป็นโมดูลเสมอไปล่ะ? ฉันคิดได้เพียงเหตุผลเดียวว่าทำไมคุณถึงต้องการชั้นเรียนและนั่นคือถ้าคุณต้องการสร้างอินสแตนซ์ของชั้นเรียน อย่างไรก็ตามในกรณีของ ActiveRecord :: Base คุณจะไม่สร้างอินสแตนซ์โดยตรง มันไม่ควรเป็นโมดูลแทนหรือ?

2
Resque vs Sidekiq? [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังใช้Resqueสำหรับกระบวนการเบื้องหลังของฉัน แต่เมื่อไม่นานมานี้ฉันได้ยินเรื่องตลกsidekiqมากมายเกี่ยวกับ ใครสามารถเปรียบเทียบ / แยกความแตกต่าง? โดยเฉพาะอย่างยิ่งฉันต้องการทราบว่ามีวิธีตรวจสอบโดยทางโปรแกรมหรือไม่ว่างานจะเสร็จสมบูรณ์ใน sidekiq

14
การใช้อัญประกาศเดี่ยวเทียบกับอัญประกาศคู่ในทับทิมมีประสิทธิภาพเพิ่มขึ้นหรือไม่?
คุณรู้หรือไม่ว่าการใช้อัญประกาศคู่แทนอัญประกาศเดี่ยวในทับทิมจะทำให้ประสิทธิภาพการทำงานลดลงอย่างมีความหมายในทับทิม 1.8 และ 1.9 ดังนั้นถ้าฉันพิมพ์ question = 'my question' เร็วกว่า question = "my question" ฉันจินตนาการว่าทับทิมพยายามคิดว่าจะต้องมีการประเมินอะไรบางอย่างเมื่อพบเครื่องหมายอัญประกาศคู่และอาจใช้เวลาในการทำเช่นนั้น
126 ruby  performance  syntax 

13
จะตรวจสอบช่องทำเครื่องหมายใน Capybara ได้อย่างไร?
ฉันใช้ Rspec และ Capybara ฉันจะเขียนขั้นตอนในการตรวจสอบได้checkboxอย่างไร? ฉันพยายามcheckตามค่า แต่ไม่พบcheckboxไฟล์. ฉันไม่แน่ใจว่าต้องทำอย่างไรเนื่องจากฉันมี ID เดียวกันและมีค่าต่างกัน นี่คือรหัส: <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">

9
วิธีเลือกตัวเลือกในเมนูแบบเลื่อนลงโดยใช้ Capybara
ฉันกำลังพยายามเลือกรายการจากเมนูแบบเลื่อนลงโดยใช้ Capybara (2.1.0) ฉันต้องการเลือกตามหมายเลข (หมายถึงเลือกตัวเลือกที่สองสาม ฯลฯ ) ฉัน Googled อย่างบ้าคลั่งที่พยายามทำทุกอย่าง แต่ไม่มีโชค ฉันสามารถเลือกได้โดยใช้ค่า: find("option[value='4c430d62-f1ba-474f-8e8a-4452c55ea0a8']").click แต่ฉันไม่ต้องการใช้วิธีนั้น b / c ค่าคือสิ่งที่จะเปลี่ยนแปลงและนั่นจะทำให้การทดสอบของฉันเปราะบาง HTML สำหรับเมนูแบบเลื่อนลงคือ: <td class="value"> <select name="organizationSelect" id="organizationSelect" class="required"> <option value="NULL">Choose...</option> <option value="4c430d62-f1ba-474f-8e8a-4452c55ea0a8"> Institution1</option> <option value="e1a4efa7-352d-410a-957e-35c8a3b92944"> Institution / test</option> </select> </td> ฉันลองสิ่งนี้ด้วย: option = find(:xpath, "//*[@id='organizationSelect']/option[2]").text select(option, :from => organizationSelect) แต่ส่งผลให้เกิดข้อผิดพลาดนี้: Ambiguous match, found 2 …

12
จะเปลี่ยนค่า Hash ได้อย่างไร?
ฉันต้องการที่จะใช้แทนกันได้ในกัญชาด้วยvaluevalue.some_method ตัวอย่างเช่นสำหรับแฮชธรรมดา: {"a" => "b", "c" => "d"}` ทุกค่าควรเป็น.upcased ดังนั้นจึงดูเหมือนว่า: {"a" => "B", "c" => "D"} ฉันพยายาม#collectและ#mapได้รับอาร์เรย์กลับมาเสมอ มีวิธีที่สวยงามในการทำเช่นนี้หรือไม่? UPDATE ฉันลืมไปแล้ว: แฮชอยู่ในตัวแปรอินสแตนซ์ซึ่งไม่ควรเปลี่ยนแปลง ฉันต้องการแฮชใหม่ที่มีค่าที่เปลี่ยนแปลง แต่ไม่ต้องการกำหนดตัวแปรนั้นอย่างชัดเจนแล้ววนซ้ำในการเติมแฮช สิ่งที่ต้องการ: new_hash = hash.magic{ ... }
126 ruby  syntax  hash 

5
การจับคู่กลุ่ม Ruby Regexp กำหนดตัวแปรใน 1 บรรทัด
ฉันกำลังพยายาม rexp สตริงเป็นตัวแปรหลายตัว สตริงตัวอย่าง: ryan_string = "RyanOnRails: This is a test" ฉันจับคู่กับ regexp นี้โดยมี 3 กลุ่ม: ryan_group = ryan_string.scan(/(^.*)(:)(.*)/i) ตอนนี้ในการเข้าถึงแต่ละกลุ่มฉันต้องทำสิ่งนี้: ryan_group[0][0] (first group) RyanOnRails ryan_group[0][1] (second group) : ryan_group[0][2] (third group) This is a test ดูเหมือนจะไร้สาระและรู้สึกว่าฉันทำอะไรผิด ฉันคาดหวังว่าจะสามารถทำสิ่งนี้ได้: g1, g2, g3 = ryan_string.scan(/(^.*)(:)(.*)/i) เป็นไปได้หรือไม่ หรือมีวิธีที่ดีกว่าที่ฉันกำลังทำอยู่?

24
ดูอายุของคนใน Ruby
ฉันต้องการระบุอายุจากวันเกิดของบุคคลนั้น now - birthday / 365ไม่ได้ผลเพราะบางปีมี 366 วัน ฉันคิดรหัสต่อไปนี้: now = Date.today year = now.year - birth_date.year if (date+year.year) > now year = year - 1 end มีวิธีการคำนวณอายุของ Ruby'ish เพิ่มเติมหรือไม่?

7
จะคลิกลิงค์แรกในรายการไอเทมหลังจากอัพเกรดเป็น Capybara 2.0 ได้อย่างไร
วิธีคลิกลิงค์แรกในกรณีนั้น: <div class="item"> <a href="/agree/">Agree</a> </div> <div class="item"> <a href="/agree/">Agree</a> </div> within ".item" do first(:link, "Agree").click end และฉันได้รับข้อผิดพลาดนี้: Capybara::Ambiguous: Ambiguous match, found 2 elements matching css ".item" และหากไม่มีwithinฉันได้รับข้อผิดพลาดนี้: Failure/Error: first(:link, "Agree").click NoMethodError: undefined method `click' for nil:NilClass
125 ruby  rspec  capybara 

8
ใน Rails คุณสร้าง JSON โดยใช้มุมมองอย่างไร
สมมติว่าคุณอยู่ในตัวควบคุมผู้ใช้ของคุณและคุณต้องการได้รับการตอบกลับ json สำหรับคำขอการแสดงคงจะดีถ้าคุณสามารถสร้างไฟล์ในมุมมอง / ผู้ใช้ / dir ของคุณชื่อ show.json และหลังจากผู้ใช้ของคุณ # show การดำเนินการเสร็จสิ้นจะแสดงไฟล์ ขณะนี้คุณต้องทำบางสิ่งตามแนวของ: def show @user = User.find( params[:id] ) respond_to do |format| format.html format.json{ render :json => @user.to_json } end end แต่คงจะดีถ้าคุณสามารถสร้างไฟล์ show.json ซึ่งจะแสดงผลโดยอัตโนมัติดังนี้: def show @user = User.find( params[:id] ) respond_to do |format| format.html format.json end end …

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