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

Ruby on Rails เป็นกรอบการพัฒนาเว็บโอเพนซอร์ซที่เขียนใน Ruby Ruby on Rails เป็นไปตามหลักการของการประชุมเกี่ยวกับการตั้งค่าช่วยให้คุณไม่ต้องคิดค้นสิ่งใหม่เพื่อให้ทำงานได้อย่างมีประสิทธิภาพ ใช้แท็กนี้เฉพาะสำหรับคำถามเฉพาะของ Rails 3 และติดแท็กคำถามเหล่านั้น [ruby-on-rails]

14
จะเปลี่ยนขีด จำกัด การยุบ navbar โดยใช้ Twitter bootstrap-responsive ได้อย่างไร
ฉันใช้ Twitter Bootstrap 2.0.1 ในโปรเจ็กต์ Rails 3.1.2 ที่ใช้กับ bootstrap-sass ฉันกำลังโหลดทั้งไฟล์bootstrap.cssและbootstrap-responsive.cssไฟล์รวมถึงbootstrap-collapse.jsJavascript ผมมีรูปแบบของเหลวกับ navbar ที่คล้ายกับตัวอย่าง นี้ต่อไปนี้ navbar ว่า "รูปแบบการตอบสนอง" คำแนะนำที่นี่ ใช้งานได้ดี: หากหน้าเว็บแคบกว่าประมาณ 940px แถบนำทางจะยุบลงและแสดง "ปุ่ม" ที่ฉันสามารถคลิกเพื่อขยายได้ อย่างไรก็ตามแถบนำทางของฉันดูดีถึงความกว้างประมาณ 550px กล่าวคือไม่จำเป็นต้องยุบเว้นแต่หน้าจอจะแคบมาก ฉันจะบอกให้ Bootstrap ยุบเฉพาะแถบนำทางได้อย่างไรหากหน้าจอกว้างน้อยกว่า 550px โปรดทราบว่า ณ จุดนี้ฉันไม่ต้องการปรับเปลี่ยนพฤติกรรมตอบสนองอื่น ๆ เช่นการวางองค์ประกอบแบบซ้อนกันแทนที่จะแสดงแบบเคียงข้างกัน

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 = …

8
ตั้งรหัสผ่านใหม่จากคอนโซล Rails
ในขณะที่ใช้งานแอพคุณจะเลือกผู้ใช้ตามที่อยู่อีเมลแล้วตั้งรหัสผ่านด้วยตนเองภายในrails consoleสำหรับ Devise ได้อย่างไร? นอกจากนี้ฉันจะไปตรวจสอบเอกสารเพื่อให้ครอบคลุมรายละเอียดเพิ่มเติมเกี่ยวกับการจัดการบัญชีขณะใช้ Devise ได้ที่ไหน

7
การลบอัญมณีที่ติดตั้งทั้งหมดและเริ่มต้นใหม่
ฉันเพิ่งเริ่มเรียนรู้ Ruby และ Ruby on Rails และได้ดูสื่อการเริ่มต้นมากมายเหลือเฟือ เมื่อเร็ว ๆ นี้ฉันพบว่าฉันได้รับข้อผิดพลาดที่อัญมณีไม่ติดตั้งหรือจะติดตั้ง แต่ไม่สามารถใช้งานได้ด้วยเหตุผลบางประการและฉันได้ตัดสินใจว่าต้องการลบทุกอย่างออกไปอีกครั้งเพียงแค่ติดตั้ง Ruby และเริ่มต้นใหม่ด้วยการติดตั้ง วิดีโอการฝึกอบรมหนึ่งรายการให้ฉันติดตั้งอัญมณีส่วนใหญ่ด้วย RVM ดังนั้นฉันจึงไม่รู้ว่าจะมีการเปลี่ยนแปลงอะไรหรือไม่ ดังนั้นในระยะสั้นคำถามของฉันคือ "ฉันจะกำจัด RVM, Rubygems และ Gems ที่ติดตั้งทั้งหมดได้อย่างไรเพื่อที่ฉันจะได้เริ่มต้นใหม่ด้วย Ruby เพียงอย่างเดียว? แก้ไข: ฉันใช้ Mac OS 10.6

7
ตรวจสอบว่ามีบันทึกจากคอนโทรลเลอร์ใน Rails หรือไม่
ในแอปของฉันผู้ใช้สามารถสร้างธุรกิจได้ เมื่อพวกเขาทริกเกอร์การindexดำเนินการในของBusinessesControllerฉันฉันต้องการตรวจสอบว่าธุรกิจเกี่ยวข้องกับcurrent_user.id: ถ้าใช่: แสดงธุรกิจ ถ้าไม่: เปลี่ยนเส้นทางไปที่newการดำเนินการ ฉันพยายามใช้สิ่งนี้: if Business.where(:user_id => current_user.id) == nil # no business found end แต่มันกลับเป็นจริงเสมอแม้ธุรกิจจะไม่มี ... ฉันจะทดสอบได้อย่างไรว่ามีระเบียนอยู่ในฐานข้อมูลของฉันหรือไม่

5
ใช้ form_for ของ Rails แต่ตั้งค่าคลาสที่กำหนดเองแอตทริบิวต์ใน <form> องค์ประกอบ?
form_forดูเหมือนจะไม่สนใจแอตทริบิวต์ "พิเศษ" ใด ๆ เช่นdata-fooแอตทริบิวต์หรือclassส่งผ่านoptionsในอาร์กิวเมนต์ที่สอง = form_for @user, {:url =&gt; 'foo', :class =&gt; 'x', 'data-bar' =&gt; 'baz' } do |f| # ... ผลลัพธ์คือ&lt;form&gt;แท็กที่ไม่มีxคลาสหรือdata-barแอตทริบิวต์ การแก้ไขคืออะไร? หรือฉันจะคว้าFormBuilderอินสแตนซ์โดยไม่ใช้งานได้form_forอย่างไร


3
ActiveRecord ค้นหาและส่งคืนเฉพาะคอลัมน์ที่เลือก
แก้ไข 2 หากคุณสะดุดในสิ่งนี้ให้ตรวจสอบคำตอบทั้งสองข้อเนื่องจากตอนนี้ฉันใช้ถอนสำหรับสิ่งนี้ ฉันมีชุดข้อมูลที่กำหนดเองขนาดใหญ่พอสมควรซึ่งฉันต้องการกลับมาเป็น echoe'd เป็น json ส่วนหนึ่งคือ: l=Location.find(row.id) tmp[row.id]=l แต่ฉันต้องการทำสิ่งที่ชอบ: l=Location.find(row.id).select("name, website, city") tmp[row.id]=l แต่ดูเหมือนจะไม่ได้ผล ฉันจะทำงานนี้ได้อย่างไร ขอบคุณ แก้ไข 1 หรือมีวิธีที่ฉันสามารถส่งอาร์เรย์เฉพาะแอตทริบิวต์ที่ฉันต้องการรวม?

3
ตัวช่วยพา ธ สร้างเส้นทางด้วยจุดแทนการใช้เครื่องหมายทับ
ใน route.rb ของฉันฉันมีสิ่งต่อไปนี้: resources :message_threads เมื่อฉันโทร: message_threads_path(1) ฉันเข้าใจ: /message_threads.1 ทำไมถึงเป็นแบบนี้? ทรัพยากรอื่น ๆ ของฉันทำงานได้ดี ฉันพูดพหูพจน์ไม่ถูกต้องหรืออะไร?

1
Rails 3 Migration with longtext
ฉันต้องการเปลี่ยนประเภทคอลัมน์จากข้อความเป็นข้อความยาวในสคริปต์ Rails ของฉัน แต่ไม่พบสิ่งใดในการดำเนินการนี้ มีใครวิ่งข้ามสิ่งนี้บ้าง? ขอบคุณ! เดนนิส

2
จะสร้างและใช้โมดูลโดยใช้ Ruby on Rails 3 ได้อย่างไร?
ฉันใช้ Ruby บน Rails 3 และต้องการย้ายโค้ดที่กำหนดเองและโค้ดที่ใช้ร่วมกันในโมดูล ฉันควรใช้ไวยากรณ์อะไรในการเขียนโค้ดโมดูล ฉันต้องวางไฟล์โมดูลไว้ในโฟลเดอร์ใดของแอปพลิเคชัน ฉันจะต้องรวมโมดูลนั้นไว้ในคลาสคอนโทรลเลอร์อย่างน้อยหนึ่งคลาสได้อย่างไร ฉันต้องใช้โมดูลแบบกำหนดเองที่ใดในแอปพลิเคชันของฉันอีกหรือไม่ถ้ามี ฉันจะเรียกเมธอดในโมดูลจากแอปพลิเคชันของฉันได้อย่างไร ขอบคุณล่วงหน้า.

2
การกำหนดเส้นทาง Rails เพื่อจัดการกับหลายโดเมนในแอปพลิเคชันเดียว
ฉันไม่สามารถหาวิธีแก้ปัญหานี้ได้แม้จะมีคำถามที่คล้ายกันหลายข้อที่นี่และที่อื่น ๆ ดูเหมือนว่าคำถามนี้ยังไม่ได้รับคำตอบสำหรับ Rails 3 ดังนั้นต่อไปนี้: ฉันมีแอปพลิเคชันที่อนุญาตให้ผู้ใช้สร้างโดเมนย่อยของตนเองซึ่งมีอินสแตนซ์ของแอปพลิเคชันอยู่ ในขณะที่ทางรถไฟ 2 คุณได้ทำหน้าที่ดีที่สุดโดยใช้อัญมณีโดเมนย่อย-Fu, ในรุ่นที่ 3 มันเป็นอย่างมากที่เรียบง่ายตาม Railscast - http://railscasts.com/episodes/221-subdomains-in-rails-3 นั่นเป็นสิ่งที่ดี แต่ฉันก็ต้องการให้ตัวเลือกสำหรับผู้ใช้ในการเชื่อมโยงชื่อโดเมนของตนเองกับบัญชีของพวกเขา ดังนั้นแม้ว่าพวกเขาอาจมีhttp://userx.mydomain.comแต่ฉันก็อยากให้พวกเขาเลือกที่จะเชื่อมโยงhttp://userx.comด้วย ฉันพบข้อมูลอ้างอิงบางประการเกี่ยวกับการทำสิ่งนี้ใน Rails 2 แต่เทคนิคเหล่านั้นดูเหมือนจะไม่ได้ผลอีกต่อไป (โดยเฉพาะอย่างยิ่งอันนี้: https://feefighters.com/blog/hosting-multiple-domains-from-a-single-rails -app / ) ใครสามารถแนะนำวิธีใช้เส้นทางเพื่อยอมรับโดเมนที่กำหนดเองและส่งต่อไปยังคอนโทรลเลอร์เพื่อให้ฉันสามารถแสดงเนื้อหาที่เหมาะสมได้ อัปเดต : ตอนนี้ฉันได้รับคำตอบเกือบทั้งหมดแล้วขอบคุณการตอบสนองที่ทันท่วงทีของ Leonid และรูปลักษณ์ใหม่ของโค้ด ในที่สุดมันต้องการการเพิ่มเติมจากรหัสโดเมนย่อยที่มีอยู่ซึ่งฉันใช้อยู่ (จากโซลูชัน Railscast) จากนั้นจึงเพิ่มบิตให้กับ route.rb ฉันยังไปไม่ถึงที่นั่น แต่ฉันต้องการโพสต์สิ่งที่ฉันมีจนถึงตอนนี้ ใน lib / subdomain.rb: class Subdomain def self.matches?(request) request.subdomain.present? …

15
ข้อผิดพลาด Postgres“ ค่าพารามิเตอร์ไม่ถูกต้อง” TimeZone“:” UTC“”
Jupitor$ bundle exec rake db:create db:migrate APP_development already exists rake aborted! PG::Error: ERROR: invalid value for parameter "TimeZone": "UTC" : SET time zone 'UTC' ฉันได้รับข้อผิดพลาดนี้อยู่เรื่อย ๆ เมื่อพยายามย้ายไปยังฐานข้อมูล postgres ของฉัน ความช่วยเหลือจะได้รับการชื่นชมมาก!

5
จะรันราง s -p80 บนพอร์ต 80 ได้อย่างไร?
โดยค่าเริ่มต้น, rails s #running on 3000 port ตอนนี้ฉันต้องการรันบนพอร์ต 80 ฉันจึงลอง: sudo rails -s -p80 แต่เกิดข้อผิดพลาด: mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo rails s -p80 sudo: rails: command not found ฉันใช้ rvm เพื่อติดตั้งทับทิมและราง ดูเหมือนว่า rvm ถูกระบุโดยผู้ใช้ มันหารางในรูทไม่ได้เหรอ? ฉันลองใช้รหัสด้านล่างด้วย: mlzboy@mlzboy-MacBook ~/my/b2c2 $ which rails /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails s -p80

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