Tag: ruby on rails 3.2

如何validation付款永远不会导致发票金额小于零?

我有这堂课: class Payment { :greater_than => 0, :less_than_or_equal_to => :maximum_amount } after_save :update_amount_payable after_destroy :update_amount_payable private def maximum_amount invoice.amount_payable end def update_amount_payable invoice.update_amount_payable end end class Invoice < ActiveRecord::Base has_many :payments after_save :update_amount_payable def update_amount_payable update_column(:amount_payable_in_cents, new_amount_payable) end private def new_amount_payable (total – payments.map(&:amount).sum) * 100 end end 上面的代码有效。 但是,如何确认没有付款金额可以导致invoice.amount_payable小于0 ? 特别是当同一张发票的多次付款可能时,这就变得棘手了。 我一直试图让我的头围绕这几个小时,但无济于事。 也许回滚数据库的回调可以在这里使用? 谢谢你的帮助。

Rails – 基于主机和ID的动态路由

我有一个包含许多用户页面的rails应用程序。 当用户想要在此页面指向域名时,我该怎么做? 现在我已经测试了这个,它的工作原理 – root :to => “controller#show”, :id => 4, :constraints => {:host => “www.exampleurl.com”} 但需要将其转换为动态,以便在将列迁移到名为domain的模型后,它会检查domain并为其提供正确的ID。 就像是 – root :to => ‘controller#show’, :id => ‘:id’, :constraints => {:host => ‘:domain’} 这会是什么样的?

与自身可选的has_one关联的范围

我有一个模型缩进。 我正在使用STI。 缩进可以是两种类型的销售和购买。 在购买类中,我使用可选的has_one关联。 class Purchase ‘Sale’, :foreign_key => ‘linked_indent_id’ # Make it work. scope :unsold, lambda {includes(:sale).where(‘id not in (select distinct linked_indent_id from indents)’)} end class Sale ‘Purchase’, :foreign_key => ‘linked_indent_id’ end 我只需要购买类的范围,我可以使用该范围找到所有未与销售相关联的购买。 我使用Rails 3.2和Postgres作为数据库。 更新: 生成的查询如下。 SELECT “indents”.* FROM “indents” WHERE “indents”.”type” IN (‘Purchase’) AND (id not in (select distinct linked_indent_id from indents)) […]

在Rails中通过1个表单编辑嵌套集合

我正在尝试创建一个表单,我可以在一个视图中单独编辑集合中的所有项目。 我使用Railscast#198( http://railscasts.com/episodes/198-edit-multiple-individually )作为一般指南,但没有包含复选框,因为我只想一次编辑集合中的每个项目(不是选择)哪些要编辑)。 根据我目前的情况,表单显示正确,但我在提交时遇到此类错误: ArgumentError in ProceduresController#update_procedures wrong number of arguments (0 for 2). Parameters: {“utf8″=>”✓”, “_method”=>”put”, “authenticity_token”=>”i9kB+uGlguerjxl0VHy1dRyMY5HrZQdILVuM79Df4Z4=”, “procedures”=>{“1″=>{“description”=>”Example1”}, “2”=>{“description”=>”Example2”}}, “commit”=>”Submit”, “comp_id”=>”1”} 请告诉我这里缺少的东西: 在我的控制器中: def edit_procedures @comp = Comp.find(params[:comp_id]) @procedures = @comp.procedures.all end def update_procedures @comp = Comp.find(params[:comp_id]) @procedures = @comp.procedures.update.(params[:procedures].keys, params[:procedures].values).reject { |p| p.errors.empty? } end 在我的路线: resources :comps do resources :procedures do […]

无法加载此类文件–pty(LoadError)

Ruby on Rails的全新function。 我的环境是Windows 2008 R2,我只是使用RailsInstaller来设置它。 我得到了一个网站,所以我将它放在C:\ Sites下。 我按照指南,并安装了rails,因为你可以看到代码中的版本。 然后我运行“rails server”尝试启动该服务,但是我收到了关于“未安装therubyracer-heroku-0.8.1.pre3的错误消息,所以我之后进行了gem安装和捆绑安装。然后therubyracer-heroku扔了一堆错误,所以我查了一下,告诉我我需要把它包装成一个组,我做了并从gem文件中的生产组中删除。现在当我做“捆绑安装”时一切都很好,所以我继续“rails服务器”,我在下面收到错误消息。请帮助吗?请 source ‘https://rubygems.org’ ruby ‘1.9.3’ gem ‘rails’, ‘3.2.13’ gem ‘pg’ gem ‘hashie’ gem ‘figaro’ # handles app configurations gem ‘airbrake’ # exception/error tracking service gem ‘haml’ gem ‘validates_existence’, ‘>= 0.4’ gem ‘useragent’ gem ‘heroku’ group :development do gem ‘zeus’ # speeds up loading of console […]

检测rspec或黄瓜是否正在运行的简便方法?

我正在检查某些地方是否正在测试模式下执行代码 Rails.env.test? 我想更进一步,检查是否是Cucumber或Rspec执行代码,以便微调i18n的一些方法(我确实希望在Cucumber上下文中运行不同,但不在Rspec上下文中) 有没有办法做到这一点?

遵循Ruby-on-Rails教程并获取“销毁用户”不起作用

我最近安装了Ruby on Rails 3.2并且一直在努力学习它。 我一直在关注RoR 3.0教程(http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#top),到目前为止一切顺利(是的,我知道有一个3.2)版)。 目前我被困在第10.4.2节,该节教导如何添加链接以销毁用户。 它说要添加代码 :delete, :confirm => “You sure?”, :title => “Delete #{user.name}” %> 以及添加apps / view / layout / application / html / erb 看起来这应该是正确的用户控制器中的destroy方法,正如教程所说,但它不适合我,我无法弄清楚为什么。 它创建的链接只是/ user /:id。 我查看了3.2教程中的相同部分,它是相同的方向(但没有javascript包含标记代码)。 我无法按照该教程开始工作。 所以我不确定为什么它不起作用或如何让它工作。 所以我们很清楚,而不是去这个用户控制器中的destroy方法,它转到/ user /:id这是show方法。

如何在轨道部分渲染sass?

我有一个Rails 3.2应用程序。 我试图在部分中渲染处理过的sass代码。 我添加了一个初始化程序来处理scss文件: ActionView::Template.register_template_handler :scss, Sass::Rails::ScssTemplate 我的sass文件名为_style.scss,渲染调用如下所示: 我收到以下错误: undefined method `call’ for Sass::Rails::ScssTemplate:Class 对我来说,这看起来像Rails不知道如何处理Sass文件,但是,我的application.css文件中包含的任何.scss文件都被正确处理,因此,至少在该上下文中,我知道sass处理工作。 我尝试了不同的扩展和格式。 在某些情况下,我可以获取渲染视图,但不处理sass。

在我的注册视图页面中我的collection_select有什么问题

我是rails的新手, 我正在使用ryan batesvideo教程的设计,而且,我一度陷入困境 我创建了用户,角色关系 在注册页面中,我需要为现有角色提供选择选项组, 在我正在写的注册视图页面 我没有准确理解collection_select方法,请帮助我可能做错了 我的模型1:user.rb class User < ActiveRecord::Base has_and_belongs_to_many :roles devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable attr_accessible :email, :password, :password_confirmation, :remember_me , :roles has_and_belongs_to_many :roles def role?(role) return !!self.roles.find_by_name(role.to_s.camelize) end end 我的模型2:role.rb class Role < ActiveRecord::Base attr_accessible :name has_and_belongs_to_many :users end 我的用户迁移文件 class DeviseCreateUsers false, :default => “” t.string :encrypted_password, […]

嵌套属性不保存在数据库中? 不显示值 – Ruby on Rails

我有一个嵌套属性,我可以显示值,但它不保存到数据库中为什么? 我有一个模型review ,我想嵌套属性comments 查看迁移文件 class CreateReviews < ActiveRecord::Migration def change create_table :reviews do |t| t.belongs_to :reviewable, polymorphic: true t.timestamps end add_index :reviews, [:reviewable_id, :reviewable_type] end end 审查模型 class Review < ActiveRecord::Base attr_accessible :rating, :user_id, :comments_attributes, :service has_many :comments, as: :commentable belongs_to :user belongs_to :reviewable, polymorphic: true accepts_nested_attributes_for :comments end 评论迁移文件 class CreateComments < ActiveRecord::Migration def […]