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

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

4
จะแทนที่ to_json ใน Rails ได้อย่างไร?
อัปเดต: ปัญหานี้ไม่ได้รับการสำรวจอย่างเหมาะสม render :jsonปัญหาที่แท้จริงอยู่ภายใน การวางโค้ดแรกในคำถามเดิมจะให้ผลลัพธ์ที่คาดหวัง อย่างไรก็ตามยังมีข้อแม้ ดูตัวอย่างนี้: render :json => current_user คือไม่ได้เช่นเดียวกับ render :json => current_user.to_json นั่นคือrender :jsonจะไม่เรียกใช้to_jsonเมธอดที่เกี่ยวข้องกับวัตถุ User โดยอัตโนมัติ ในความเป็นจริงหากto_jsonถูกแทนที่บนUserโมเดลrender :json => @userจะสร้างตามที่ArgumentErrorอธิบายไว้ด้านล่าง สรุป # works if User#to_json is not overridden render :json => current_user # If User#to_json is overridden, User requires explicit call render :json => current_user.to_json ทั้งหมดนี้ดูเหมือนโง่สำหรับฉัน …

4
ตัวตรวจสอบความถูกต้องที่กำหนดเองของ Rails 3 ควรเก็บไว้ที่ไหน
ฉันเคยเห็นเอกสาร / เว็บไซต์แสดงให้เห็นว่าตัวตรวจสอบความถูกต้องที่กำหนดเองควรอยู่ใน/libหรือ/lib/validatorsไดเรกทอรีของโครงการ ฉันพบ (โดยการอ่านคำตอบของโพสต์อื่น) ว่าดูเหมือนจะใช้ได้config/initializersเท่านั้น ไม่มีใครรู้หรือมีตัวชี้ไปยังเอกสารอย่างเป็นทางการที่แสดงว่าเครื่องมือตรวจสอบที่กำหนดเองควรอยู่ที่ใด


4
ทางเลือกของ WordPress สำหรับ Ruby on Rails คืออะไร? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ทางเลือกของ WordPress สำหรับ Ruby on Rails คืออะไร? เปรียบเทียบกับ WordPress ได้อย่างไร?

6
หากสตริงว่างเปล่าให้ส่งคืนค่าเริ่มต้นบางค่า
บ่อยครั้งที่ฉันต้องตรวจสอบว่าค่าบางค่าว่างเปล่าและเขียนว่า "No data present" ดังนี้: @user.address.blank? ? "We don't know user's address" : @user.address และเมื่อเรามีประมาณ 20-30 ช่องที่เราต้องประมวลผลแบบนี้มันจะน่าเกลียด สิ่งที่ฉันทำคือขยายคลาส String ด้วยorวิธีการ class String def or(what) self.strip.blank? ? what : self end end @user.address.or("We don't know user's address") ตอนนี้กำลังดูดีขึ้น แต่มันก็ยังดิบและหยาบ จะดีกว่าอย่างไรในการแก้ปัญหาของฉัน บางทีอาจจะดีกว่าถ้าจะขยายActiveSupport classหรือใช้วิธีตัวช่วยหรือส่วนผสมหรืออย่างอื่น อะไรคืออุดมคติของทับทิมประสบการณ์และแนวทางปฏิบัติที่ดีที่สุดของคุณสามารถบอกฉันได้

12
Uncaught ReferenceError: ไม่ได้กำหนดปฏิกิริยา
ฉันพยายามที่จะทำให้การทำงานของ ReactJS กับรางใช้นี้กวดวิชา ฉันได้รับข้อผิดพลาดนี้: Uncaught ReferenceError: React is not defined แต่ฉันสามารถเข้าถึงวัตถุ React ในคอนโซลของเบราว์เซอร์ได้ ฉันยังเพิ่มpublic / dist / turbo-react.min.jsตามที่อธิบายไว้ที่นี่และเพิ่มบรรทัดใน application.js ตามที่อธิบายไว้ในคำตอบนี้ว่าไม่มีโชค นอกจากนี้ให้ข้อผิดพลาด://= require components var React = require('react') Uncaught ReferenceError: require is not defined ใครช่วยแนะนำวิธีแก้ปัญหานี้ให้ฉันได้ไหม [แก้ไข 1] ซอร์สโค้ดสำหรับอ้างอิง: นี่คือcomments.js.jsxไฟล์ของฉัน: var Comment = React.createClass({ render: function () { return ( <div className="comment"> …

5
Mongodb: ข้อควรรู้ก่อนใช้? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบพร้อมข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังเริ่มโครงการงานอดิเรก (ที่ไม่ใช่รายได้) โดยใช้ Ruby on Rails ฉันได้ทำการพัฒนาใน Rails โดยใช้ Postgresql มาพอสมควรแล้วและฉันสามารถเลียนแบบสคีมาที่เป็นมาตรฐานได้ค่อนข้างดี อย่างไรก็ตาม Mongrodb ดูแวววาวและใหม่ จะมีอะไรดีไปกว่าการลองทำอะไรใหม่ ๆ มากกว่าโครงการงานอดิเรก ลองนึกย้อนไปตอนที่คุณเริ่มใช้ Mongodb คุณได้เรียนรู้เทคนิคอะไรในภายหลังที่ทำให้คุณพูดว่า "ถ้าฉันรู้เมื่อฉันเริ่ม!" ปลั๊กอินใดที่คุณค้นพบว่าคุณจะใช้ตั้งแต่เริ่มต้นถ้าคุณรู้เพียงอย่างเดียว คุณต้องการบุ๊กมาร์กการอ้างอิงใด

8
วิธีเปลี่ยนชื่อตัวควบคุมรางและรุ่นในโครงการ
ฉันเริ่มแอป Rails และทุกอย่างทำงานได้ดี แต่ตอนนี้ฉันต้องการเปลี่ยนชื่อคอนโทรลเลอร์และรุ่นที่เกี่ยวข้อง: ฉันต้องการเปลี่ยนCorpsคอนโทรลเลอร์เป็นStoresและแบบเดียวกัน (โดยไม่มีขั้นสุดท้าย) สำหรับโมเดล เมื่อค้นหาใน Google มีคนแนะนำให้ทำลายแล้วสร้างคอนโทรลเลอร์และโมเดลอีกครั้ง ปัญหาคือมันจะลบรหัสจริงของแต่ละไฟล์! วิธีแก้ปัญหาใด ๆ ขอบคุณล่วงหน้า.

5
ฉันจะเปิดการบันทึกการดีบัก SQL สำหรับ ActiveRecord ในการทดสอบ RSpec ได้อย่างไร
ฉันมีการทดสอบ RSpec สำหรับโมเดลของฉันและฉันต้องการเปิดการบันทึก SQL ActiveRecord เหมือนที่ฉันเห็นในโหมดเซิร์ฟเวอร์ Rails ต้องทำอย่างไร? ฉันเริ่มการทดสอบด้วย RAILS_ENV=test bundle exec rspec my/test_spec.rb ขอบคุณ

2
วิธีจัดเก็บข้อมูลใน S3 และอนุญาตให้ผู้ใช้เข้าถึงอย่างปลอดภัยด้วยไคลเอนต์ Rails API / iOS
ฉันเพิ่งเริ่มเขียน Rails และ API ฉันต้องการความช่วยเหลือเกี่ยวกับโซลูชันพื้นที่จัดเก็บ S3 นี่คือปัญหาของฉัน ฉันกำลังเขียน API สำหรับแอพ iOS ที่ผู้ใช้ล็อกอินด้วย Facebook API บน iOS เซิร์ฟเวอร์ตรวจสอบผู้ใช้กับปัญหาโทเค็น Facebook ให้กับผู้ใช้ iOS และออกโทเค็นเซสชันชั่วคราว จากจุดนี้ผู้ใช้ต้องดาวน์โหลดเนื้อหาที่เก็บไว้ใน S3 เนื้อหานี้เป็นของผู้ใช้และส่วนย่อยของเพื่อนของเขาเท่านั้น ผู้ใช้รายนี้สามารถเพิ่มเนื้อหาเพิ่มเติมใน S3 ซึ่งคนกลุ่มเดียวกันสามารถเข้าถึงได้ เดาว่าคล้ายกับการแนบไฟล์ในกลุ่ม Facebook ... มี 2 ​​วิธีที่ผู้ใช้สามารถโต้ตอบกับ S3 ... ปล่อยไว้ที่เซิร์ฟเวอร์หรือให้เซิร์ฟเวอร์ออกโทเค็น S3 ชั่วคราว (ไม่แน่ใจในความเป็นไปได้ที่นี่) และผู้ใช้สามารถเข้าถึง URL เนื้อหาไปยัง S3 ได้โดยตรง ฉันพบว่าคำถามนี้พูดถึงแนวทาง แต่มันล้าสมัยไปแล้ว (2 ปีที่แล้ว): คำถามเกี่ยวกับสถาปัตยกรรมและการออกแบบเกี่ยวกับการอัปโหลดรูปภาพจากแอพ iPhone …

4
เคลียร์คิว sidekiq
ฉันเป็นคนงานที่ทำงานตลอดกาล class Worker include Sidekiq::Worker sidekiq_options queue: "infinity", retry: true def perform(params) # ... self.class.perform_in(30.seconds, params) end end ปัญหาคือฉันโหลดคนงานเมื่อเริ่มต้นระบบเช่นนี้ config/initializers/load_workers.rb Rails.application.config.after_initialize do if ENV["SIDEKIQ"] == "1" Worker.perform_async({}) end end ใช้นี้เพื่อเริ่มต้น SIDEKIQ=1 sidekiq --verbose --environment production -C config/sidekiq.ymlsidekiq นั่นหมายความว่าคนงานเก่าจะหยุดทั้งคนที่กำลังทำงานอยู่ แต่คนที่ถูกเลื่อนเวลาไปด้วย ฉันลองเรียกใช้สิ่งนี้เมื่อเริ่มต้น (ก่อนที่จะโหลดงานใหม่) แต่ไม่ได้ผล q = [] q += Sidekiq::RetrySet.new.select { |job| …

5
Rails กำหนดรหัสอัตโนมัติที่มีอยู่แล้ว
ฉันสร้างสถิติใหม่ดังนี้: truck = Truck.create(:name=>name, :user_id=>2) ขณะนี้ฐานข้อมูลของฉันมีเอนทิตีสำหรับรถบรรทุกหลายพันรายการ แต่ฉันกำหนดรหัสให้กับหลาย ๆ รายการในลักษณะที่ทำให้มี ID บางส่วน สิ่งที่เกิดขึ้นคือรางสร้างรายการที่มี id = 150 และใช้งานได้ดี แต่มันพยายามสร้างไอเท็มและกำหนด id = 151 แต่ id นั้นอาจมีอยู่แล้วดังนั้นฉันจึงเห็นข้อผิดพลาดนี้: ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey" DETAIL: Key (id)=(151) already exists. และในครั้งต่อไปที่ฉันเรียกใช้แอคชันมันจะกำหนด id 152 ซึ่งจะทำงานได้ดีหากยังไม่ได้ใช้ค่านั้น ฉันจะรับรางเพื่อตรวจสอบว่ามี ID อยู่แล้วก่อนกำหนดได้อย่างไร ขอบคุณ! แก้ไข รหัสรถบรรทุกคือสิ่งที่ถูกทำซ้ำ มีผู้ใช้อยู่แล้วและเป็นค่าคงที่ในกรณีนี้ จริงๆแล้วมันเป็นปัญหาเดิมที่ฉันต้องจัดการ …

23
ไม่มีผู้ใช้ที่เกี่ยวข้องกับข้อผิดพลาด PG undefinedtable
ฉันเห็นคำถามนี้มาก่อน แต่สำหรับ rspec เท่านั้น ฉันยังไม่ได้สร้างแบบทดสอบเพราะมันล้ำหน้าเกินไปสำหรับฉัน แต่วันหนึ่งในไม่ช้าฉันจะทำ! : ป ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามลงทะเบียน / ล็อกอินเข้าสู่แอปของฉัน ผมใช้ประดิษฐ์เพื่อสร้างผู้ใช้และยังomniauth2ลงชื่อเข้าใช้ด้วยGoogle นี่คือข้อผิดพลาด ActiveRecord::StatementInvalid at /users/auth/google_oauth2/callback PG::UndefinedTable: ERROR: relation "users" does not exist LINE 5: WHERE a.attrelid = '"users"'::regclass ^ : SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = …

9
แชร์เซสชัน (คุกกี้) ระหว่างโดเมนย่อยใน Rails?
ฉันมีการตั้งค่าแอปที่ผู้ใช้แต่ละคนเป็นของ บริษัท และ บริษัท นั้นมีโดเมนย่อย (ฉันใช้โดเมนย่อยสไตล์ basecamp) ปัญหาที่ฉันกำลังเผชิญคือทางรถไฟกำลังสร้างคุกกี้หลายตัว (อันหนึ่งสำหรับ lvh.me และอีกอันสำหรับ subdomain.lvh.me) ซึ่งทำให้แอปพลิเคชันของฉันหยุดพักค่อนข้างน้อย (เช่นข้อความแฟลชที่ไม่หยุดหย่อนแม้ว่าจะมีคำขอทั้งหมดเพียงครั้งเดียวก็ตาม ลงทะเบียนเข้า). ฉันมีสิ่งนี้ในไฟล์ /cofig/initilizers/session_store.rb ของฉัน: AppName::Application.config.session_store :cookie_store, key: '_application_devise_session', domain: :all โดเมน:: ทั้งหมดนี้ดูเหมือนจะเป็นคำตอบมาตรฐานที่ฉันพบใน Google แต่ดูเหมือนจะไม่ได้ผลสำหรับฉัน ขอความช่วยเหลือใด ๆ !

6
บันทึกวัตถุหลายรายการในการโทรครั้งเดียวในราง
ฉันมีวิธีในรางที่ทำสิ่งนี้: a = Foo.new("bar") a.save b = Foo.new("baz") b.save ... x = Foo.new("123", :parent_id => a.id) x.save ... z = Foo.new("zxy", :parent_id => b.id) z.save ปัญหาคือใช้เวลานานขึ้นและนานขึ้นยิ่งฉันเพิ่มเอนทิตีมากขึ้น ฉันสงสัยว่านี่เป็นเพราะมันต้องตีฐานข้อมูลสำหรับทุกระเบียน เนื่องจากพวกเขาอยู่ในรังฉันรู้ว่าฉันไม่สามารถช่วยเด็ก ๆ ก่อนที่พ่อแม่จะได้รับความรอด แต่ฉันต้องการช่วยพ่อแม่ทุกคนในคราวเดียวจากนั้นก็ให้เด็ก ๆ ทุกคน จะเป็นการดีที่จะทำสิ่งต่างๆเช่น: a = Foo.new("bar") b = Foo.new("baz") ... saveall(a,b,...) x = Foo.new("123", :parent_id => a.id) ... z …

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