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

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

2
วิธีการรับ "ส่งมอบ" ที่เฉพาะเจาะจงของอัญมณีจาก GitHub?
ฉันใช้rails_adminและเนื่องจากมันอยู่ในการพัฒนาที่ใช้งานอยู่ (มาก) ข้อผิดพลาดก็ปรากฏขึ้นทุกขณะ ไม่มีรุ่นสำหรับอัญมณีเท่าที่ฉันสามารถบอกได้ว่าเป็นอัญมณีใน GitHub ดังนั้นฉันจึงไม่สามารถใช้:versionคีย์สำหรับการประกาศอัญมณีใน Gemfile ได้ มีวิธีที่ฉันสามารถ "ผูก" ความมุ่งมั่นเฉพาะ (ที่ฉันรู้ว่าทำงานได้ดีสำหรับฉัน) กับ Gemfile หรือไม่ ฉันมี Gemfile อยู่ในปัจจุบัน: gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git' ฉันต้องการทำสิ่งนี้ (ตัวอย่าง "commit_id"): gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git', :commit_id => "4e7d53e3c5c4c3c5c43c3" เป็นไปได้ที่จะทำอย่างไรกับ GitHub?

14
do..end vs braces แบบหยิกสำหรับบล็อกใน Ruby
ฉันมีเพื่อนร่วมงานที่พยายามโน้มน้าวใจฉันว่าฉันไม่ควรใช้ do..end และใช้วงเล็บปีกกาเพื่อกำหนดบล็อกหลายเส้นในรูบี ฉันอยู่ในค่ายของเพียงใช้เครื่องหมายปีกกาสั้นสำหรับหนึ่งสมุทรและทำ .. ส่งทุกอย่างอื่น แต่ฉันคิดว่าฉันจะติดต่อกับชุมชนที่ใหญ่กว่าเพื่อรับการแก้ไข แล้วมันคืออะไรและทำไม? (ตัวอย่างของรหัส shoulda บางอย่าง) context do setup { do_some_setup() } should "do somthing" do # some more code... end end หรือ context { setup { do_some_setup() } should("do somthing") { # some more code... } } โดยส่วนตัวแล้วการดูที่ด้านบนตอบคำถามของฉัน แต่ฉันต้องการเปิดสิ่งนี้ให้กับชุมชนส่วนใหญ่

5
ราง 3 ตรวจสอบว่ามีการเปลี่ยนแปลงคุณลักษณะ
ต้องตรวจสอบว่ามีการเปลี่ยนแปลงกลุ่มของคุณลักษณะก่อนที่จะอัพเดทใน Rails 3 ถนน 1, ถนน 2, เมือง, รัฐ, รหัสไปรษณีย์ ฉันรู้ว่าฉันสามารถใช้สิ่งที่ชอบ if @user.street1 != params[:user][:street1] then do something.... end แต่โค้ดนั้นจะยาวมาก ๆ มีวิธีที่สะอาดกว่านี้ไหม?

6
ข้อผิดพลาด 'รวม' วิธีการที่ไม่ได้กำหนดฟิลด์ Rails Hidden
ฉันอยากทำอะไรแบบนี้กับราง นี่คือสิ่งที่ฉันมีอยู่ในราง: <%= form_for @order do |f| %> <%= f.hidden_field :service, "test" %> <%= f.submit %> <% end %> แต่ฉันได้รับข้อผิดพลาดนี้: undefined method `merge' for "test":String ฉันจะส่งผ่านค่าใน hidden_field ของฉันในรางได้อย่างไร

5
ฉันจะบอก Rails ให้ใช้ RSpec แทนการทดสอบเมื่อสร้างแอพ Rails ใหม่ได้อย่างไร
ฉันได้test-unitรับการติดตั้งและrspecการติดตั้ง (พร้อมกับ-core, -expectations, -mocksและ-railsรุ่น 2.6.x) เมื่อฉันเรียกใช้คำสั่งrails new fooจะใช้ในการสร้างแฟ้มการทดสอบต้นขั้วแทนtest-unitrspec มีตัวเลือกที่ฉันสามารถบอกทางรถไฟให้ใช้ rspec เพื่อสร้างการทดสอบแทนได้หรือไม่?

7
ศูนย์ชั้นนำในราง
ฉันมีเขตข้อมูลhrและminจำนวนเต็มทั้งสองในใบสมัครของฉัน สำหรับhrฟิลด์หากผู้ใช้ป้อน "1" ฉันต้องการให้ Rails pad อัตโนมัติเป็น "01" ก่อนที่จะบันทึกลงในฐานข้อมูล นอกจากนี้สำหรับminฟิลด์หากผู้ใช้ป้อน "0" ควรใส่เป็น "00" ฉันจะทำสิ่งนี้ได้อย่างไร

14
ฉันจะลบเส้นทาง Devise เพื่อสมัครได้อย่างไร
ฉันกำลังใช้ Devise ในแอป Rails 3 แต่ในกรณีนี้ผู้ใช้จะต้องสร้างขึ้นโดยผู้ใช้ปัจจุบันซึ่งเป็นผู้กำหนดสิทธิ์ที่ตนจะมี ด้วยเหตุนี้ฉันต้องการ: การลบเส้นทางสำหรับผู้ใช้ในการลงทะเบียน ที่จะยังคงให้ผู้ใช้สามารถแก้ไขโปรไฟล์ของพวกเขา (เปลี่ยนที่อยู่อีเมลและรหัสผ่าน) หลังจากที่พวกเขาได้ลงทะเบียน ฉันจะทำสิ่งนี้ได้อย่างไร ขณะนี้ฉันกำลังลบเส้นทางนี้อย่างมีประสิทธิภาพโดยวางสิ่งต่อไปนี้ก่อนหน้าdevise_for :users: match 'users/sign_up' => redirect('/404.html') ใช้งานได้ แต่ฉันคิดว่ามีวิธีที่ดีกว่าใช่มั้ย ปรับปรุง ดังที่เบอนัวต์การ์เรตกล่าวว่าทางออกที่ดีที่สุดในกรณีของฉันคือการข้ามการสร้างเส้นทางการลงทะเบียนและเพียงแค่สร้างสิ่งที่ฉันต้องการจริงๆ ในการทำเช่นนั้นฉันวิ่งครั้งแรกrake routesจากนั้นใช้ผลลัพธ์เพื่อสร้างสิ่งที่ฉันต้องการอีกครั้ง ผลลัพธ์ที่ได้คือ: devise_for :users, :skip => [:registrations] as :user do get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration' put 'users' => 'devise/registrations#update', :as => 'user_registration' end โปรดทราบว่า: ฉันยังมี:registerableในUserแบบจำลองของฉัน …

16
ไม่พบไลบรารีไคลเอนต์ PostgreSQL (libpq)
ฉันพยายามติดตั้ง PostgreSQL สำหรับ Rails บน Mac OS X 10.6 ครั้งแรกที่ฉันลองติดตั้ง MacPorts แต่มันไม่ได้ดีดังนั้นฉันจึงทำการติดตั้ง DMG แบบคลิกเดียว ดูเหมือนว่าจะทำงาน ฉันสงสัยว่าฉันต้องติดตั้งแพ็คเกจพัฒนา PostgreSQL แต่ฉันไม่รู้ว่าจะทำอย่างไรใน OS X นี่คือสิ่งที่ฉันได้รับเมื่อฉันพยายามทำsudo gem install pg: $ sudo gem install pg Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb …

2
ใครสามารถอธิบาย collection_select ให้ฉันอย่างชัดเจนและเรียบง่ายได้ไหม?
ฉันกำลังอ่านเอกสาร API ของ Rails collection_selectและพวกเขาก็น่ากลัวมาก หัวข้อคือ: collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {}) และนี่คือตัวอย่างโค้ดเดียวที่ให้: collection_select(:post, :author_id, Author.all, :id, :name_with_initial, :prompt => true) ใครสามารถอธิบายโดยใช้การเชื่อมโยงแบบง่าย (พูดUserhas_many Plansและเป็นPlanของ a User) สิ่งที่ฉันต้องการใช้ในไวยากรณ์และทำไม แก้ไข 1:มันจะยอดเยี่ยมถ้าคุณอธิบายว่ามันทำงานอย่างไรภายในform_helperหรือรูปแบบปกติ ลองนึกภาพคุณกำลังอธิบายสิ่งนี้กับผู้พัฒนาเว็บที่เข้าใจการพัฒนาเว็บ แต่เป็น 'ค่อนข้างใหม่' สำหรับ Rails คุณจะอธิบายได้อย่างไร

5
วิธีรับพา ธ ปัจจุบันด้วยสตริงการสืบค้นโดยใช้ Capybara
URL ของหน้าเป็นสิ่ง/people?search=name ที่ฉันต้องการในขณะที่ฉันใช้current_pathวิธีการของ capybara ที่ส่งคืน/peopleเท่านั้น current_path.should == people_path(:search => 'name') แต่มันล้มเหลวในการพูด expected: "/people?search=name" got: "/people" เราจะทำให้มันผ่านไปได้อย่างไร มีวิธีการทำเช่นนี้หรือไม่?

5
Rails 3: ฉันต้องการแสดงรายการเส้นทางทั้งหมดที่กำหนดไว้ในแอปพลิเคชันทางรถไฟของฉัน
ฉันต้องการฟังก์ชั่นพา ธ ตัวช่วยที่กำหนดไว้ทั้งหมด (ที่สร้างจากเส้นทาง) ในแอปพลิเคชั่น Rails 3 ของฉันหากเป็นไปได้ ขอบคุณ

9
ไม่มีเส้นทางที่ตรงกับ [GET] / เนื้อหา
ฉันมีแอพ Rails ที่ฉันพยายามทดสอบในสภาพแวดล้อมการผลิต ฉันวิ่งRAILS_ENV=production rake assets:precompileซึ่งสร้างสินทรัพย์ทั้งหมดของฉันใน / สาธารณะ / สินทรัพย์ ปัญหาคือเมื่อฉันเริ่มแอพของฉันด้วย / RAILS_ENV=production rails s thinฉันได้รับ: ActionController::RoutingError (No route matches [GET] "/assets/application-eff78fd67423795a7be3aa21512f0bd2.css"): /public/assets/application-eff78fd67423795a7be3aa21512f0bd2.cssไฟล์นี้ไม่อยู่แม้ คิดว่าทำไมฉันถึงได้รับสิ่งนี้RoutingError?

8
Rails: FATAL - การรับรองความถูกต้องแบบเพียร์ล้มเหลวสำหรับผู้ใช้ (PG :: Error)
ฉันกำลังพัฒนาบน Ubuntu 11.10 และ RubyMine นี่คือการตั้งค่าการพัฒนาของฉันสำหรับ database.yml ซึ่ง RubyMine สร้างขึ้นสำหรับฉัน development: adapter: postgresql encoding: unicode database: mydb_development pool: 5 username: myuser password: เมื่อฉันพยายามเรียกใช้แอพฉันได้รับข้อผิดพลาดด้านล่างนี้ดูเหมือนว่าฉันยังไม่ได้สร้างผู้ใช้ 'โครงการ' แต่ฉันจะสร้างผู้ใช้และให้ฐานข้อมูลใน postgres ได้อย่างไร ถ้านี่เป็นปัญหาแสดงว่าอะไรคือเครื่องมือที่แนะนำให้ใช้ใน Ubuntu สำหรับงานนี้ หากนี่ไม่ใช่ปัญหากรุณาแนะนำ Exiting /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `initialize': FATAL: Peer authentication failed for user "project" (PG::Error) from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `new' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `connect' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in …

4
คุณจะรันคำสั่ง SQL ด้วยตนเองใน Ruby On Rails โดยใช้ NuoDB อย่างไร
ฉันพยายามรันคำสั่ง SQL ด้วยตนเองเพื่อให้ฉันสามารถเข้าถึงโพรซีเดอร์ใน NuoDB ฉันใช้ Ruby on Rails และฉันใช้คำสั่งต่อไปนี้: ActiveRecord::Base.connection.execute("SQL query") "แบบสอบถาม SQL" อาจเป็นคำสั่ง SQL ใด ๆ ตัวอย่างเช่นฉันมีตารางชื่อ "คำติชม" และเมื่อฉันรันคำสั่ง: ActiveRecord::Base.connection.execute("SELECT `feedbacks`.* FROM `feedbacks`") สิ่งนี้จะส่งกลับการตอบสนอง "จริง" แทนที่จะส่งข้อมูลทั้งหมดที่ขอมาให้ฉัน นี่คือผลลัพธ์บน Rails Console คือ: SQL (0.4ms) SELECT `feedbacks`.* FROM `feedbacks` => true ฉันต้องการใช้วิธีนี้เพื่อเรียกโพรซีเดอร์ที่เก็บไว้ใน NuoDB แต่เมื่อเรียกโพรซีเดอร์นี้จะส่งคืนการตอบกลับที่ "จริง" มีอยู่แล้วฉันสามารถดำเนินการคำสั่ง SQL และรับข้อมูลที่ร้องขอแทนที่จะได้รับการตอบสนอง "จริง"?

7
การกำหนดเวอร์ชัน API สำหรับเส้นทาง Rails
ฉันกำลังลองรุ่น API ของฉันเหมือนมีลาย ด้านล่างได้รับ API เวอร์ชันล่าสุดคือ 2 /api/users ส่งคืน 301 ถึง /api/v2/users /api/v1/users ส่งคืนดัชนีผู้ใช้ 200 รายการในเวอร์ชัน 1 /api/v3/users ส่งคืน 301 ถึง /api/v2/users /api/asdf/users ส่งคืน 301 ถึง /api/v2/users ดังนั้นโดยทั่วไปสิ่งใดก็ตามที่ไม่ได้ระบุลิงก์เวอร์ชันไปเป็นเวอร์ชันล่าสุดเว้นแต่ว่ามีเวอร์ชันที่ระบุอยู่แล้วจึงเปลี่ยนเส้นทางไปยังเวอร์ชันนั้น นี่คือสิ่งที่ฉันมี: scope 'api', :format => :json do scope 'v:api_version', :api_version => /[12]/ do resources :users end match '/*path', :to => redirect { …

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