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

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

8
Rails: include vs. : joins
นี่เป็นคำถามที่ว่า "ทำไมสิ่งต่าง ๆ ถึงทำงานแบบนี้" มากกว่าคำถามที่ว่า "ฉันไม่รู้จะทำอย่างไร" ดังนั้นพระกิตติคุณในการดึงบันทึกที่เกี่ยวข้องที่คุณรู้ว่าคุณจะใช้คือการใช้:includeเพราะคุณจะได้เข้าร่วมและหลีกเลี่ยงการสืบค้นเพิ่มเติม: Post.all(:include => :comments) อย่างไรก็ตามเมื่อคุณดูล็อกจะไม่มีการเข้าร่วมเกิดขึ้น: Post Load (3.7ms) SELECT * FROM "posts" Comment Load (0.2ms) SELECT "comments.*" FROM "comments" WHERE ("comments".post_id IN (1,2,3,4)) ORDER BY created_at asc) มันเป็นทางลัดเพราะมันดึงทุกความคิดเห็นในครั้งเดียว แต่ก็ยังไม่เข้าร่วม (ซึ่งเป็นสิ่งเอกสารทั้งหมดที่ดูเหมือนว่าจะพูด) วิธีเดียวที่ฉันจะเข้าร่วมได้คือใช้:joinsแทน:include: Post.all(:joins => :comments) และบันทึกแสดง: Post Load (6.0ms) SELECT "posts".* FROM "posts" INNER JOIN …

5
Rails 4: before_filter vs. before_action
ในราง> 4.0.0 ปั่นไฟสร้างการดำเนินงาน CRUD ด้วยไม่ได้before_action before_filterดูเหมือนว่าจะทำในสิ่งเดียวกัน ดังนั้นความแตกต่างระหว่างสองสิ่งนี้คืออะไร?

5
วิธีการแปลงวัตถุแฮช ruby ​​เป็น JSON?
วิธีการแปลงวัตถุแฮช ruby ​​เป็น JSON? ดังนั้นฉันลองตัวอย่างด้านล่างนี้แล้วมันใช้ไม่ได้ ฉันดู RubyDoc และเห็นได้ชัดว่าHashวัตถุไม่มีto_jsonวิธี แต่ฉันกำลังอ่านบนบล็อกที่ Rails สนับสนุนactive_record.to_jsonและสนับสนุนhash#to_jsonด้วย ฉันสามารถเข้าใจได้ว่าActiveRecordเป็นวัตถุ Rails แต่Hashไม่ได้เป็นของ Rails มันเป็นวัตถุ Ruby บริสุทธิ์ ดังนั้นใน Rails คุณสามารถทำได้hash.to_jsonแต่ไม่ใช่ Ruby ที่บริสุทธิ์หรือ car = {:make => "bmw", :year => "2003"} car.to_json

14
วิธีกำหนดตัวแปรการกำหนดค่าที่กำหนดเองในทางรถไฟ
ฉันสงสัยว่าจะเพิ่มตัวแปรการกำหนดค่าแบบกำหนดเองลงในแอปพลิเคชั่นทางรถไฟและวิธีการเข้าถึงตัวแปรเหล่านั้นในคอนโทรลเลอร์ได้อย่างไรเช่นฉันต้องการที่จะสามารถกำหนดคำสั่ง upload_directory ในไฟล์กำหนดค่าได้ว่า development.rb และสามารถเข้าถึงได้ในหนึ่ง ตัวควบคุม ประการที่สองฉันวางแผนที่จะรองรับ S3 สำหรับการอัปโหลดในแอปพลิเคชันของฉันหากฉันต้องการเพิ่มไฟล์ yaml ที่มีการเข้าถึง s3, รหัสลับ, ฉันจะเริ่มต้นได้อย่างไรในแอป Rails ของฉันและฉันจะเข้าถึงค่าที่ฉันกำหนดไว้อย่างไร ในไฟล์ปรับแต่งนั้น

6
วิธีการเรียกใช้ `รางสร้างนั่งร้าน 'เมื่อแบบจำลองมีอยู่แล้ว?
ฉันยังใหม่กับ Rails ดังนั้นโครงการปัจจุบันของฉันจึงอยู่ในสภาพประหลาด หนึ่งในสิ่งแรกที่ฉันสร้างคือโมเดล "ภาพยนตร์" จากนั้นฉันก็เริ่มกำหนดรายละเอียดเพิ่มเติมเพิ่มวิธีการ ฯลฯ ตอนนี้ฉันรู้แล้วว่าฉันควรสร้างมันขึ้นมาrails generate scaffoldเพื่อเชื่อมโยงสิ่งต่างๆเช่นการกำหนดเส้นทางมุมมองตัวควบคุม ฯลฯ ฉันพยายามสร้างนั่งร้าน แต่ฉันพบข้อผิดพลาดว่ามีไฟล์การโยกย้ายที่ใช้ชื่อเดียวกันนี้อยู่แล้ว วิธีที่ดีที่สุดสำหรับฉันในการสร้างนั่งร้านสำหรับ "ภาพยนตร์" ของฉันคืออะไรตอนนี้ (ใช้ราง 3)

3
คุณจะลบวัตถุ ActiveRecord ได้อย่างไร
คุณจะลบวัตถุ ActiveRecord ได้อย่างไร ฉันดูActive Record Queryingและไม่มีอะไรในการลบที่ฉันเห็น ลบโดยid, ลบวัตถุปัจจุบันเช่น: user.remove, คุณสามารถลบตามwhereคำสั่งได้หรือไม่?

10
วิธีการค้นหาที่กำหนดวิธีการที่รันไทม์?
เมื่อเร็ว ๆ นี้เรามีปัญหาที่เกิดขึ้นหลังจากที่มีการกระทำหลายอย่างเกิดขึ้นกระบวนการแบ็กเอนด์ไม่สามารถทำงานได้ ตอนนี้เราเป็นเด็กชายและเด็กหญิงตัวเล็ก ๆ ที่ดีและวิ่งrake testตามเช็คอินทุกครั้ง แต่เนื่องจากมีสิ่งแปลกประหลาดบางอย่างในการโหลดห้องสมุดของ Rails มันเกิดขึ้นเมื่อเราวิ่งจาก Mongrel โดยตรงในโหมดการผลิต ฉันติดตามข้อผิดพลาดและเป็นเพราะ Rails gem ใหม่เขียนทับวิธีในคลาส String ในวิธีที่ใช้งานได้ไม่ดีในโค้ด Rails ยังไงก็ตามเรื่องสั้นสั้น ๆ มีวิธีที่รันไทม์เพื่อถามทับทิมที่กำหนดวิธีการ? สิ่งที่ต้องการwhereami( :foo )กลับมา/path/to/some/file.rb line #45? ในกรณีนี้การบอกฉันว่ามันถูกกำหนดไว้ในคลาส String จะไม่ช่วยเหลือเพราะห้องสมุดบางแห่งทำงานหนักเกินไป ฉันไม่สามารถรับประกันได้ว่าแหล่งข้อมูลอาศัยอยู่ในโครงการของฉันดังนั้นการโลภเพื่อ'def foo'ไม่จำเป็นต้องให้สิ่งที่ฉันต้องการไม่ต้องพูดถึงถ้าฉันมีหลายคน def fooบางครั้งฉันก็ไม่รู้จนกระทั่งถึงรันไทม์ที่ฉันอาจใช้

9
Rails โยกย้ายสำหรับคอลัมน์การเปลี่ยนแปลง
เรามีscript/generate migration add_fieldname_to_tablename fieldname:datatypeไวยากรณ์สำหรับการเพิ่มคอลัมน์ใหม่ให้กับโมเดล ในบรรทัดเดียวกันเรามีสคริปต์ / สร้างสำหรับการเปลี่ยนประเภทข้อมูลของคอลัมน์หรือไม่? หรือฉันควรเขียน SQL โดยตรงลงในการโยกย้ายวานิลลาของฉัน ฉันต้องการเปลี่ยนคอลัมน์จากการdatetimedate

7
ลบองค์ประกอบที่ซ้ำกันออกจากอาร์เรย์ใน Ruby
ฉันมีอาร์เรย์ Ruby ซึ่งมีองค์ประกอบที่ซ้ำกัน array = [1,2,2,1,4,4,5,6,7,8,5,6] ฉันจะลบองค์ประกอบที่ซ้ำกันทั้งหมดออกจากอาร์เรย์นี้ในขณะที่รักษาองค์ประกอบที่ไม่ซ้ำกันทั้งหมดโดยไม่ต้องใช้ for-loops และการวนซ้ำได้อย่างไร

13
วิธีที่ดีที่สุดในการจัดการสกุลเงิน / เงินคืออะไร?
ฉันกำลังทำงานกับระบบตะกร้าสินค้าขั้นพื้นฐานมาก ฉันมีตารางitemsที่มีคอลัมน์priceประเภทintegerหนึ่ง ฉันมีปัญหาในการแสดงมูลค่าราคาในมุมมองของฉันสำหรับราคาที่มีทั้งเงินยูโรและเซนต์ ฉันขาดอะไรบางอย่างที่เห็นได้ชัดว่าเกี่ยวข้องกับการจัดการค่าเงินในกรอบ Rails หรือไม่?

6
raw vs. html_safe vs. h เป็น unescape html
สมมติว่าฉันมีสตริงต่อไปนี้ @x = "<a href='#'>Turn me into a link</a>" ในมุมมองของฉันฉันต้องการลิงค์ที่จะแสดง นั่นคือฉันไม่ต้องการให้ทุกสิ่งทุกอย่างใน @x ไม่สามารถใช้ค่า Escape และแสดงเป็นสตริงได้ ความแตกต่างระหว่างการใช้งานคืออะไร <%= raw @x %> <%= h @x %> <%= @x.html_safe %> ?
323 ruby-on-rails  erb 

9
“ WARN ไม่สามารถระบุความยาวเนื้อหาของเนื้อหาการตอบสนองได้” หมายความว่าอย่างไรและฉันจะกำจัดมันได้อย่างไร
ตั้งแต่อัพเกรดเป็น Rails 3.1 ฉันเห็นข้อความเตือนนี้ในบันทึกการพัฒนาของฉัน: WARN ไม่สามารถระบุความยาวเนื้อหาของเนื้อหาการตอบสนอง ตั้งค่าความยาวเนื้อหาของการตอบกลับหรือชุดResponse#chunked = true นี่หมายถึงอะไรและฉันจะลบออกได้อย่างไร มันเป็นปัญหาหรือไม่?

3
คำสั่งกรณีที่มีหลายค่าในแต่ละบล็อก 'เมื่อ'
วิธีที่ดีที่สุดที่ฉันสามารถอธิบายสิ่งที่ฉันกำลังมองหาคือการแสดงรหัสที่ล้มเหลวที่ฉันได้ลองไปแล้ว: case car when ['honda', 'acura'].include?(car) # code when 'toyota' || 'lexus' # code end ฉันมีประมาณ 4 หรือ 5 ที่แตกต่างกันwhenในสถานการณ์ที่ควรจะเรียกโดยประมาณ 50 carค่าที่เป็นไปแตกต่างกันของ มีวิธีทำเช่นนี้กับcaseบล็อกหรือฉันควรลองifบล็อกขนาดใหญ่หรือไม่?

7
เพิ่มการย้ายข้อมูลคอลัมน์อ้างอิงใน Rails 4
ผู้ใช้มีการอัปโหลดจำนวนมาก ฉันต้องการที่จะเพิ่มคอลัมน์ไปยังตารางที่อ้างอิงuploads userการโยกย้ายควรมีลักษณะอย่างไร นี่คือสิ่งที่ฉันมี ผมไม่แน่ใจว่าผมควรจะใช้ (1) :user_id, :intหรือ :user, :references(2) ฉันไม่แน่ใจด้วยซ้ำว่า (2) ใช้งานได้ เพียงแค่พยายามทำสิ่งนี้ด้วยวิธี "ทางรถไฟ" class AddUserToUploads < ActiveRecord::Migration def change add_column :uploads, :user_id, :integer end end คำถามที่เกี่ยวข้องยกเว้น Rails 3 Rails 3 migrations: การเพิ่มคอลัมน์อ้างอิง?

8
Ruby on Rails สร้างฟิลด์ model: type - ตัวเลือกสำหรับ field: type คืออะไร?
ฉันกำลังพยายามสร้างโมเดลใหม่และลืมไวยากรณ์เพื่ออ้างอิง ID ของโมเดลอื่น ฉันค้นหาด้วยตัวเอง แต่ฉันไม่ได้คิดออกมาในบรรดาลิงค์เอกสาร Ruby on Rails ทั้งหมดของฉันวิธีการค้นหาแหล่งที่ชัดเจน $ rails g model Item name:string description:text(และที่นี่reference:productหรือreferences:product) แต่คำถามที่ดีกว่าคือที่หรือวิธีการที่ผมสามารถมองหาชนิดของความโง่เขลานี้ได้อย่างง่ายดายในอนาคตหรือไม่ หมายเหตุ: ฉันได้เรียนรู้วิธีการที่ยากว่าถ้าฉันพิมพ์ผิดหนึ่งในตัวเลือกเหล่านี้และทำการโยกย้ายของฉันจากนั้น Ruby on Rails จะทำให้ฐานข้อมูลของฉันrake db:rollbackหมดสิ้น ... ฉันแน่ใจว่าฉันไม่เข้าใจบางอย่าง แต่จนกว่าฉันจะ ... ข้อมูล "รายละเอียด" ที่ส่งคืนโดยrails g modelยังทำให้ฉันเกา ...

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