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

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

3
รับการติดตามสแต็กปัจจุบันใน Ruby โดยไม่เพิ่มข้อยกเว้น
ฉันต้องการบันทึก backtrace ปัจจุบัน (stacktrace) ในแอพ Rails 3 โดยไม่มีข้อยกเว้นเกิดขึ้น มีความคิดอย่างไร ทำไมฉันถึงต้องการสิ่งนี้ ฉันกำลังพยายามติดตามการโทรที่เกิดขึ้นเมื่อ Rails ค้นหาเทมเพลตเพื่อที่ฉันจะได้เลือกส่วนหนึ่งของกระบวนการที่จะลบล้าง (เพราะฉันต้องการเปลี่ยนเส้นทางการดูสำหรับคอนโทรลเลอร์คลาสย่อยของฉัน) ฉันต้องการเรียกมันจากไฟล์: gems\actionpack-3.2.3\lib\action_dispatch\middleware\templates\rescues\missing_template.erb. ฉันรู้ว่านั่นไม่ใช่แนวทางปฏิบัติที่ดีที่สุด แต่ฉันรู้ว่ามันเป็นดาวน์สตรีมของสแต็กจากที่ที่เกิดการค้นหาเทมเพลต
141 ruby  stack-trace 

26
ฉันจะหลีกเลี่ยงการเรียกใช้การเรียกกลับ ActiveRecord ได้อย่างไร
ฉันมีบางรุ่นที่มีการโทรกลับหลังบันทึก ปกติแล้วจะใช้ได้ แต่ในบางสถานการณ์เช่นเมื่อสร้างข้อมูลการพัฒนาฉันต้องการบันทึกโมเดลโดยไม่ต้องเรียกใช้การเรียกกลับ มีวิธีง่าย ๆ ในการทำเช่นนั้น? คล้ายกับ ... Person#save( :run_callbacks => false ) หรือ Person#save_without_callbacks ฉันดูเอกสาร Rails แล้วไม่พบอะไรเลย อย่างไรก็ตามจากประสบการณ์ของฉันเอกสาร Rails ไม่ได้บอกเรื่องราวทั้งหมดเสมอไป UPDATE ฉันพบโพสต์บล็อกที่อธิบายถึงวิธีที่คุณสามารถลบการโทรกลับออกจากโมเดลดังนี้: Foo.after_save.clear ฉันไม่พบตำแหน่งที่บันทึกไว้ แต่ดูเหมือนว่าจะใช้งานได้


7
'sudo gem install' หรือ 'gem install' และตำแหน่งของ gem
การใช้ ' sudo gem list --local' และ ' gem list --local' ให้ผลลัพธ์ที่ต่างกัน เส้นทางอัญมณีของฉันถูกตั้งไว้ที่โฟลเดอร์บ้านของฉันและมีเพียงอัญมณีจาก ' gem list --local' อาจไม่ดีที่จะติดตั้งอัญมณีในไดเรกทอรีต่าง ๆ ในคอมพิวเตอร์ของฉันดังนั้นฉันควรตั้งค่าเส้นทางอัญมณีให้แตกต่างกันหรือไม่และควรใช้sudoเมื่อติดตั้งบางสิ่งหรือไม่ my ~/.profile export PATH=/opt/local/bin:/opt/local/sbin:$PATH export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" ~ / .bash_profile ว่างเปล่า

4
วิธีการแก้ไขข้อผิดพลาด“ gpg: ไม่พบคำสั่ง” ในระหว่างการติดตั้ง RVM
ฉันมี mac pro ใหม่ (OS X 10.9.5) ที่ฉันได้รับจากการตั้งค่า ฉันต้องการติดตั้ง RVM และสิ่งแรกที่บอกว่าต้องทำคือ: ติดตั้งรหัสสาธารณะของ mpapis (อาจจำเป็นgpg2และหรือsudo) gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 เมื่อฉันพยายามฉันได้: gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 zsh: command not found: gpg ฉันพยายามหาคำแนะนำที่ดีเกี่ยวกับวิธีการเอาชนะสิ่งนี้ซึ่งดูน่าเชื่อถือ แต่ฉันก็ไม่มีโชค มีคนอธิบายgpgได้ไหมว่าทำไมฉันถึงไม่มีมันอยู่แล้วและฉันจะทำให้มันถูกต้องได้อย่างไร
140 ruby  macos  command-line  rvm  gnupg 

5
RVM และ rbenv ทำงานอย่างไร
ฉันสนใจว่า RVM และ rbenv ทำงานอย่างไร เห็นได้ชัดว่าพวกเขาสลับระหว่างรุ่นต่าง ๆ ของ Ruby และ gemsets แต่สิ่งนี้สำเร็จ ฉันสันนิษฐานว่าพวกเขาเพียงแค่อัปเดต symlink แต่การเจาะลึกเข้าไปในโค้ด (และฉันต้องยอมรับความรู้ของฉันเกี่ยวกับ Bash นั้นเป็นเพียงผิวเผิน) พวกเขาดูเหมือนจะทำอะไรมากกว่านี้

6
นับ, ขนาด, ความยาว…มีตัวเลือกมากเกินไปในรูบี?
ฉันไม่สามารถหาคำตอบที่ชัดเจนเกี่ยวกับเรื่องนี้และฉันต้องการให้แน่ใจว่าฉันเข้าใจในระดับ "n'th" :-) a = {"a" => "Hello", "b" => "โลก"} a.count # 2 a.size # 2 a.length # 2 a = [10, 20] a.count # 2 a.size # 2 a.length # 2 ดังนั้นที่จะใช้? ถ้าฉันต้องการทราบว่ามีองค์ประกอบมากกว่าหนึ่งองค์ประกอบมันไม่สำคัญ แต่ฉันต้องการให้แน่ใจว่าฉันเข้าใจความแตกต่างที่แท้จริง สิ่งนี้ใช้กับอาร์เรย์ด้วย ฉันได้รับผลลัพธ์เดียวกัน นอกจากนี้ฉันรู้ว่าการนับ / ขนาด / ความยาวมีความหมายต่างกันด้วย ActiveRecord ฉันสนใจทับทิมบริสุทธิ์ (1.92) ส่วนใหญ่ในตอนนี้ แต่ถ้าใครอยากพูดถึงความแตกต่างของ AR ก็น่าจะเป็นที่ชื่นชมเช่นกัน …

10
จะเปลี่ยนเขตเวลาเริ่มต้นสำหรับ Active Record ใน Rails ได้อย่างไร?
ในฉันapplication.rbฉันเจอความคิดเห็นต่อไปนี้ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. config.time_zone = 'Eastern Time (US & Canada)' ดังที่คุณเห็นจากด้านบนฉันได้ทำconfig.time_zoneเวลา EST อย่างไรก็ตามยังคงเมื่อสร้างระเบียนในฐานข้อมูลดูเหมือนว่าdatetimeจะถูกจัดเก็บในรูปแบบ UTC ในความคิดเห็นข้างต้นพวกเขาพูดว่า ... และทำให้ Active …

14
การให้บริการไฟล์คงที่ด้วย Sinatra
ฉันมีเว็บไซต์หน้าเดียวที่ใช้ HTML, CSS และ JavaScript ฉันต้องการปรับใช้แอพนี้กับ Heroku แต่ไม่สามารถหาวิธีที่จะทำได้ ตอนนี้ฉันกำลังพยายามทำให้แอปทำงานกับ Sinatra . |-- application.css |-- application.js |-- index.html |-- jquery.js `-- myapp.rb myapp.rbและต่อไปนี้เป็นเนื้อหาของ require 'rubygems' require 'sinatra' get "/" do # What should I write here to point to the `index.html` end
139 ruby  sinatra 


7
การกำหนดค่าคงที่แบบไดนามิก
class MyClass def mymethod MYCONSTANT = "blah" end end ให้ฉันข้อผิดพลาด: SyntaxError: ข้อผิดพลาดการกำหนดค่าคงที่แบบไดนามิก เหตุใดจึงถือว่าค่าคงที่แบบไดนามิกนี้ ฉันแค่กำหนดสตริงให้
139 ruby 

14
ทั้งหมดยกเว้นองค์ประกอบสุดท้ายของอาร์เรย์ Ruby
สมมติว่าฉันมีอาร์เรย์ทับทิม a = [1, 2, 3, 4] ถ้าฉันต้องการทั้งหมดยกเว้นรายการแรกฉันสามารถเขียนa.drop(1)ได้ดีมาก ถ้าฉันต้องการทุกอย่างยกเว้นรายการสุดท้ายฉันก็แค่คิดแบบนี้ a[0..-2] # or a[0...-1] dropแต่ไม่มีของเหล่านี้ดูเหมือนสะอาดเท่าที่ใช้ มีวิธีอื่นในตัวที่ฉันขาดไป
139 ruby 

6
วิธีแปลง JSON เป็น Ruby hash
ฉันมีวัตถุ JSON ที่มีค่าต่อไปนี้: @value = {"val":"test","val1":"test1","val2":"test2"} ฉันต้องการวนซ้ำใน Ruby เพื่อรับคู่คีย์ / ค่า เมื่อฉันใช้@eachมันจะไม่วนซ้ำผ่านวัตถุเพราะมันไม่ได้อยู่ในรูปแบบ Ruby hash: @value = {"val"=>"test","val1"=>"test1","val2"=>"test2"} ฉันจะแปลงออบเจ็กต์ JSON ด้านบนเป็นแฮช Ruby ได้อย่างไร
139 ruby  json  hashmap 

9
วิธีใช้อักษรตัวพิมพ์ใหญ่ตัวแรกใน String in Ruby
upcaseวิธีการใช้ประโยชน์สตริงทั้งหมด แต่ฉันต้องการที่จะลงทุนเพียงตัวอักษรตัวแรก นอกจากนี้ฉันต้องรองรับภาษายอดนิยมหลายภาษาเช่นเยอรมันและรัสเซีย ฉันต้องทำอย่างไร?
139 ruby 

2
ใน Ruby ฉันจะสร้างข้อความซ้ำหลายสายได้อย่างไร
วิธีที่ดีที่สุดในการสร้างสายยาวอย่างรวดเร็วในทับทิมคืออะไร? ใช้งานได้ แต่ช้ามาก: str = "" length = 100000 (1..length).each {|i| str += "0"} ฉันได้สังเกตเห็นด้วยว่าการสร้างสตริงที่มีความยาวพอเหมาะแล้วต่อท้ายไปยังสตริงที่มีอยู่จนถึงความยาวที่ต้องการนั้นจะทำงานได้เร็วขึ้นมาก: str = "" incrementor = "" length = 100000 (1..1000).each {|i| incrementor += "0"} (1..100).each {|i| str += incrementor} ข้อเสนอแนะอื่น ๆ ?
138 ruby  string 

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