Tag: ruby on rails

Rails初学者 – 查询多个表以一次检索大量信息的最佳实践

我是Rails初学者并且要学习它我正在构建一个简单的时间跟踪应用程序。 我想用许多来自嵌套信息的表中的大量信息填充管理员的仪表板。 查询数据库以请求一家公司的所有数据查看所有客户,项目,任务,调整和分钟的仪表板的最佳做法是什么? 以下是数据的结构: 公司有很多客户 客户owner_to公司has_many项目 项目belongs_to客户端has_many任务 任务belongs_to项目has_many分钟 分钟belongs_to任务 这种数据结构可能非常糟糕。 我不知道。 数据的示例视图: 动 – 网站重新设计 —发展 —- 100分钟 我从这开始,但我很漂亮,但它可能完全倒退(用户属于公司): @clients = Client.find_all_by_company_id(current_user.company_id) @clients.each do |client| project = Project.find_all_by_client_id(client.id) puts project.name project.each do |project| task = Task.find_all_by_project_id(project.id) puts task.name end end 我想也可以问一个问题:是否有一本好书或资源完全描述了Rails ActiveRecord最佳实践?

如何检索具有附加文件的对象并根据一组预先排序的值对这些对象进行排序?

我正在使用Ruby on Rails 3.2.2和Paperclip 2.7.0。 我想从数据库中检索数据,其中记录/对象具有附加文件(在我的情况下,它是图像文件),并根据一组预先排序的值对这些对象进行排序。 也就是说,我有image_file_name (由Paperclip gem处理)和status (状态可以published , unpublished , blocked )数据库表列,我希望如此: 返回的数据主要包含与图像相关联的记录/对象(也许这可以通过Paperclip gem处理); 在步骤#1中检索到的对象按blocked , unpublished和随后published状态排序(按重要性顺序排列); 更多,如果返回的对象小于5,那么我想“追加”那些对象的其他对象,但不关心步骤#1和#2中的“filter和排序”。 我该怎么做?

Rails 2.3.5应用程序在Ruby 1.8.7 Rake错误。

我试图在我的Fedora服务器上安装Rails 2.3 gem。 应用程序中没有Gemfile。 它需要oauth2 gem。 当我使用安装命令时,它给出以下错误: rake aborted! can’t activate rack (>= 1.1.0, < 2, runtime) for ["faraday-0.5.7", "oauth2-0.1.0"], already activated rack-1.0.1 for ["actionpack-2.3.5", "rails-2.3.5"] 有没有办法找到Rails 2.3.5 gem所需的gem?

如何包含所有lib文件夹?

我想用简单的方法扩展核心Array类: class Array def to_hash result = Hash.new self.each { |a| result[a] = ” } result end end 我将array.rb放入lib / core_ext并尝试在application.rb中要求它 config.autoload_paths += %W(#{config.root}/lib) config.autoload_paths += Dir[“#{config.root}/lib/**/”] 但仍然undefined method ‘to_hash’ for [“var1”, “var2”, “var3”]:Array获取undefined method ‘to_hash’ for [“var1”, “var2”, “var3”]:Array如果尝试在模型方法中使用它,则为undefined method ‘to_hash’ for [“var1”, “var2”, “var3”]:Array 。 当然,我在代码更改后重新启动了服务器。

无法启动WEBrick,Rails gem的文件夹为空

我正在关注Michael Hartl的Ruby on Rails教程 ,我一直试图在我的Windows 7机器上启动rails服务器。 我正按照第1.2.5章中的说明尝试这样做。 ,即通过打字 rails server 但是,这不会启动WEBrick,而是返回’rails’命令的使用说明。 我一直在谷歌上搜索一段时间,而且一些答案似乎暗示了rails gem的问题。 现在,我找到了rails gem文件夹(“C:\ RailsInstaller \ Ruby1.9.3 \ lib \ ruby​​ \ gems \ 1.9.1 \ gems \ rails-3.2.3”),它是空的! 当我尝试时 rails -v 它返回“Rails 3.2.16”,虽然我删除了这个版本的gem; 如果我试试 gem list 它一直告诉我版本是3.2.3。 这一直持续到我删除铁路版本3.2.16,结果导致了 rails -v 返回’Rails 3.2.3’,但我还是无法启动WEBrick。 任何帮助,将不胜感激。

在失败的注册时,Rails设计重定向到’/ users’而不是’/ users / sign_up’

我一直在寻找解决这个问题 – 当用户使用Devise创建注册失败时,无论出于何种原因,他们都会被重定向到’/ users’而不是留在’/ users / sign_up’并持续存在错误: 这是我的路线: devise_for :users, controllers: { sessions: ‘users/sessions’, confirmations: ‘users/confirmations’, registrations: ‘users/registrations’, passwords: ‘users/passwords’, invitations: ‘users/invitations’ }, sign_out_via: [:get, :delete] 和/users/registrations_controller.rb class Users::RegistrationsController < Devise::RegistrationsController prepend_before_filter :require_no_authentication, only: [:new, :create] def new @body_class = "hold-transition register-page" build_resource({}) yield resource if block_given? respond_with resource end def create build_resource(sign_up_params) resource.save yield […]

将student_id连接到Rails中的submission_id

我试图将我的student_id连接到submission_id,但它不起作用。 我有一个名为submissionstudent的连接表。 学生Controller.rb: class StudentsController < ApplicationController before_action :set_student, only: [:show, :edit, :update, :destroy] # GET /students # GET /students.json def index @students = Student.all end # GET /students/1 # GET /students/1.json def show end # GET /students/new def new @student = Student.new end # GET /students/1/edit def edit end # POST /students # POST […]

我如何使用content_for来放置内容:yield

我在ruby 1.9.2,rails3。 所以我的网站有一些结构, 我想把菜单放在我的网页中间。 我正在做类似的事情(在application.html.erb文件中) blahblahblah blahblhablah 我有一个文件menu.html.erb,它有网站的菜单结构。 如果我想使用./layout文件夹中的文件作为该yield:菜单的一部分,我该怎么办? 我想知道,如果我必须为每个控制器使用content_for,并且在每个函数中… Btw,menu.html.erb对于每个控制器都会有所不同,这就是为什么我要让它产生的。 总之,我只是希望在任何地方都包含一个共同的共享menu.html.erb。

#..Rails 4的未定义方法`model_name_question’

我在提交表单后收到此错误:(在索引页面中) 3, :style => “width:80%”, :placeholder => “enter your question.” %> 我有question模型: class Question < ActiveRecord::Base validates :question, presence: true belongs_to :category belongs_to :questioner end 和问题控制器: class QuestionsController < ApplicationController def index @quiz = Question.new @questioner = Questioner.new end def new @quiz = Question.new(quiz_params) end def show @quiz = Question.find(params[:id]) end def edit @quiz = […]

我的开发环境已经消失,我在尝试修复它时遇到了一系列错误

所以我和我的一个朋友搞乱了gem,我不小心删掉了一个。 我不确定发生了什么事,所以我只是把它擦掉了。 然后我去为我的旧应用程序运行’rails server’,我一直在努力,没有任何事情发生在2分钟,然后最终它吐出一个错误。 /Users/Nick/.rvm/bin/ruby: line 6: /Users/Nick/.rvm/bin/ruby: Argument list too long /Users/Nick/.rvm/bin/ruby: line 6: /Users/Nick/.rvm/bin/ruby: Undefined error: 0 那么我做了下面提出的所有建议,我遇到了各种各样的错误。 如果我要为每个错误创建一个单独的问题,我认为我会弄乱堆栈溢出,所以我想在这里给出一些解决这个问题的顺序。 现在我正在试图回溯并弄清楚发生了什么……每当我在答案中运行这些不同的命令时我就会改变一些事情而我不知道发生了什么。 当我尝试安装ruby版本时,我收到此错误: apple-gcc42 is not available in PATH, try: brew unlink apple-gcc42 && brew link apple-gcc42 and make sure that apple-gcc42 is available in your PATH: which gcc-4.2 我在某处读到安装xCode会解决这个问题,所以我安装了它。 虽然我得到了同样的错误。 当我尝试运行该错误的第一个建议时,我得到了这个: Unlinking /usr/local/Cellar/apple-gcc42/4.2.1-5666.3… 0 […]