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

Ruby on Rails เป็นโอเพ่นซอร์สเฟรมเวิร์กแบบเต็มเว็บแอ็พพลิเคชันที่เขียนใน Ruby มันเป็นไปตามรูปแบบกรอบ MVC ที่เป็นที่นิยมและเป็นที่รู้จักกันดีในเรื่องแนวทาง

8
ActiveRecord: แสดงรายการคอลัมน์ในตารางจากคอนโซล
ฉันรู้ว่าคุณสามารถขอให้ ActiveRecord แสดงรายการตารางในคอนโซลโดยใช้: ActiveRecord::Base.connection.tables มีคำสั่งที่จะแสดงรายการคอลัมน์ในตารางที่กำหนดหรือไม่

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ดูเหมือนว่าควรทำเช่นนี้ แต่อ่านเพิ่มเติมดูเหมือนว่าจะไม่ตรงกับสิ่งที่ทำ

7
การจัดเก็บรหัสผ่านเป็นตัวแปรสภาพแวดล้อม (แทนที่จะเป็นข้อความธรรมดา) ในไฟล์กำหนดค่ามีความปลอดภัยหรือไม่
ฉันทำงานกับแอพบางตัวในราง django (และ php เล็กน้อย) และหนึ่งในสิ่งที่ฉันเริ่มทำในบางแอพคือการจัดเก็บฐานข้อมูลและรหัสผ่านอื่น ๆ เป็นตัวแปรสภาพแวดล้อมแทนที่จะเป็นข้อความธรรมดาในไฟล์กำหนดค่าบางไฟล์ ( หรือใน settings.py สำหรับแอป django) ในการพูดคุยเรื่องนี้กับผู้ทำงานร่วมกันคนหนึ่งของฉันเขาแนะนำว่านี่เป็นแนวทางปฏิบัติที่ไม่ดีซึ่งบางทีอาจจะไม่ปลอดภัยเท่าที่ควรในตอนแรก ดังนั้นฉันต้องการทราบ - นี่เป็นแนวทางปฏิบัติที่ปลอดภัยหรือไม่? การจัดเก็บรหัสผ่านเป็นข้อความธรรมดาในไฟล์เหล่านี้ปลอดภัยกว่าหรือไม่ (แน่นอนว่าอย่าทิ้งไฟล์เหล่านี้ไว้ใน repos สาธารณะหรืออะไรก็ตาม)

18
ข้อกำหนดรูปแบบวันที่ไม่ถูกต้องใน gemspec
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามใช้อัญมณีใน windows และฉันยังอ้างถึง โพสต์ stackoverflow นี้และอัปเดตทับทิมและราง แต่ไม่มีอะไรสามารถแก้ปัญหาได้ ต่อไปนี้เป็นข้อผิดพลาดทั้งหมด D: \> อัญมณี env gemspec ไม่ถูกต้องใน [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications /tilt-1.3.3.gemspec]: รูปแบบวันที่ไม่ถูกต้องในข้อกำหนด: "2011-08-25 00:00:00 .000000000Z" gemspec ไม่ถูกต้องใน [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications /execjs-1.2.4.gemspec]: รูปแบบวันที่ไม่ถูกต้องในข้อกำหนด: "2011-08-03 00:00: 00.000000000Z" gemspec ไม่ถูกต้องใน [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications /temple-0.3.3.gemspec]: รูปแบบวันที่ไม่ถูกต้องในข้อกำหนด: "2011-08-26 00:00: 00.000000000Z" gemspec ไม่ถูกต้องใน [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications /guard-0.6.3.gemspec]: รูปแบบวันที่ไม่ถูกต้องในข้อกำหนด: "2011-09-01 00: 00: 0 0.000000000Z" …


13
Heroku push ถูกปฏิเสธไม่พบแอปที่รองรับ Cedar
ฉันกำลังสร้างแอพ Rails ด้วย Rails 3.1.3: git init git remote add heroku <my heroku repo> git add . git commit -a -m "First commit" git push heroku master ได้รับ: Counting objects: 102, done. Delta compression using up to 4 threads. Compressing objects: 100% (86/86), done. Writing objects: 100% (102/102), 315.47 KiB, …

7
ไม่มีตัวเลือกลับสำหรับ Rack :: Session :: คำเตือนเรื่องคุกกี้?
ฉันใช้งาน Rails 3.2.3, Ruby 1.9 ภายใต้ Fedora 17 ฉันได้รับคำเตือนนี้เมื่อฉันวิ่งrails sและฉันจะแก้ไขได้อย่างไร? คำเตือนด้านความปลอดภัย: ไม่มีตัวเลือกลับให้กับ Rack :: Session :: Cookie สิ่งนี้ก่อให้เกิดภัยคุกคามด้านความปลอดภัย ขอแนะนำอย่างยิ่งให้คุณระบุความลับเพื่อป้องกันการหาประโยชน์ที่อาจเกิดขึ้นจากคุกกี้ที่สร้างขึ้น สิ่งนี้จะไม่ได้รับการสนับสนุนใน Rack เวอร์ชันอนาคตและเวอร์ชันในอนาคตจะทำให้คุกกี้ผู้ใช้ที่มีอยู่ของคุณเป็นโมฆะด้วยซ้ำ

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

5
ความแตกต่างระหว่างขอบเขตและเนมสเปซของการกำหนดเส้นทางทับทิมบนราง 3
ฉันไม่เข้าใจว่าความแตกต่างระหว่างเนมสเปซและขอบเขตในการกำหนดเส้นทางของทับทิมบนราง 3 คืออะไร ใครช่วยอธิบายหน่อย namespace "admin" do resources :posts, :comments end scope :module => "admin" do resources :posts, :comments end

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

11
วิธีลบไฟล์การโอนย้ายใน Rails 3
ฉันต้องการลบ / ลบไฟล์การย้ายข้อมูล ฉันจะทำอย่างนั้นได้อย่างไร? ฉันรู้ว่ามีคำถามคล้าย ๆ กันที่นี่ แต่เป็นการอัปเดตมีวิธีที่ดีกว่าการทำสคริปต์ / ทำลายหรือไม่? นอกจากนี้ฉันควรทำdb:resetหรือdb:dropถ้าฉันลบ / ลบการย้ายข้อมูล?


4
เส้นทางที่ตั้งชื่อ _path vs _url
รางให้เส้นทางชื่อ ตัวช่วยกำหนดเส้นทางสามารถเรียกได้โดยใช้เส้นทางหรือ URL เช่นจากเอกสาร: # and provide these named routes root_url # => 'http://www.example.com/' root_path # => '/' พูดตรงไปตรงฉันไม่เคยใช้ผู้ช่วยยังฉันก็สามารถที่จะได้รับสิ่งที่ทำงานโดยใช้*_url*_path ฉันสับสนนิดหน่อยว่าจุดประสงค์ของตัวช่วยทั้งสองนี้แตกต่างกันอย่างไร? แตกต่างกันอย่างไร? ตัวอย่างจริงพร้อมคำอธิบายว่าเมื่อใดควรใช้สิ่งที่ดี

10
Rails: วิธีเปลี่ยนข้อความบนปุ่มส่งในแบบฟอร์ม Rails
ฉันได้แสดงรายการไฟล์ _form.html.erb ของฉันไว้ด้านล่างสิ่งที่ฉันต้องการจะทำคือเปลี่ยนข้อความบนปุ่มส่งฉันรู้วิธีทำใน html แต่ไม่แน่ใจว่าจะทำอย่างไรใน Rails 3 %= form_for(@faq) do |f| %> <% if @faq.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@faq.errors.count, "error") %> prohibited this faq from being saved:</h2> <ul> <% @faq.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %> <div class="field"> <%= f.label :question …

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.