Tag:

请帮助您使用此测试版代码,我该如何解决?

可能重复: 为什么这段代码不会产生预期的结果呢? 我有代码: def check_beta_code beta_code_array = [‘AAAAAAAAAA’, ‘BBBBBBBBBB’, ‘CCCCCCCCCC’, ‘DDDDDDDDDD’, ‘EEEEEEEEEE’] beta_code_array.each do |code| if :beta_code != code errors.add(:beta_code, “Invalid Beta Code”) end end end 此代码的问题在于,即使有人输入了正确的密码,仍然会生成4个错误,因为其他4个错误都不正确。

Before_validation:set_locale vs I18n.t(text:…,locale :)

对你有什么好处? 精确到页面的所有I18n.t(….)消息中的区域设置,或 在before_validation逻辑中的set_locale? 我关注DRY而且还有表现。

如何使用元编程干?

似乎应该有一个很好的方式通过MP来干这个: class Dashboard def self.num_registrations_past_day return User.recent_registrations(24.hours.ago).count end def self.num_registrations_past_three_days return User.recent_registrations(3.days.ago).count end def self.num_registrations_past_seven_days return User.recent_registrations(7.days.ago).count end def self.num_registrations_past_month return User.recent_registrations(30.days.ago).count end def self.avg_registrations_past_three_days return (self.num_registrations_past_three_days / 3.to_f) end def self.avg_registrations_past_seven_days return (self.num_registrations_past_seven_days / 7.to_f) end def self.avg_registrations_past_month return (self.num_registrations_past_month / 30.to_f) end def self.total_registered_users return User.count end def self.total_activated_users return User.total_activated end end

是否有框架允许我只定义一次模型?

我刚刚完成了几个模型的创建,并且必须在1)Rails ActiveRecord 2)Rails数据库迁移和3)Backbone.js模型中分别编写所有属性。 我感觉不太干涩。 我假设干扰这个问题的第一步是切换到node.js,我可以在后端和前端使用CoffeeScript(理想情况下重用相同的Backbone.js模型),但是数据库模式呢? 我意识到我可以创建一个从模型属性生成SQL的框架,但在我开始这项努力之前,我想知道这样的事情是否已经存在或正在开发中。 如果这个框架可以统一视图和控制器以便我没有应用程序/视图,应用程序/控制器,app / assets / javascripts / views,app / assets / javascripts / routers等所有定义相似的内容,那也是很棒的不同地方的事情。

Rails:从另一个模型调用一个模型。 为什么这不可能?

我有以下型号…… class Room = ? and date <= ?', from_date, to_date).uniq end def self.vacant_rooms(from_date, to_date) self.where.not(id: Room.occupied_rooms(from_date, to_date)) end def self.blahblah(occupancy_count, smoking, from_date, to_date) layouts = Layout.layouts_with_occupancy_count_gt(occupancy_count) Room.rooms_with_smoking(smoking).vacant_rooms(from_date, to_date).joins(layouts) end end blahblah方法…… 当我试图从irb运行它时,我得到一个错误……“未知类:布局” 1)房间是否“不知道”布局。 我可以不使用这样的其他模型吗? 我该怎么做。 2)理论问题:有一个大的方法定义来获取某些信息更好吗?或者更好的是有很多小的分区方法,并且在一种方法中使用它们来获得更大的数据。 例如… 一个’大’方法: def self.find_rooms_with(occupancy_count, smoking, from_date, to_date) Room.vacant_rooms(from_date, to_date).joins(:layout).where(‘occupancy_count >= ?’, occupancy_count).where(‘smoking = ?’, smoking) end 绝不大,但一切都重新编码。 似乎它不会像DRY那么长时间。 […]

如何在Rails 3中自定义to_json响应

我正在使用respond_with ,所有内容都正确连接以正确获取数据。 我想以干燥的方式自定义返回的json , xml和foobar格式,但我无法弄清楚如何使用有限的:only和:include 。 当数据很简单时,这些都很棒,但是对于复杂的发现,它们不符合我的要求。 可以说我有一个有很多图像的post def show @post = Post.find params[:id] respond_with(@post) end 我想用响应包含图像,所以我可以这样做: def show @post = Post.find params[:id] respond_with(@post, :include => :images) end 但我真的不想发送整个图像对象,只是url。 除此之外,我真的希望能够做到这样的事情(伪代码): def show @post = Post.find params[:id] respond_with(@post, :include => { :foo => @posts.each.really_cool_method } ) end def index @post = Post.find params[:id] respond_with(@post, :include => […]

Rails中的DRY控制器3.2

在进行代码气候分析后,我发现我的控制器并非干燥。 方法如: def index @animals = current_user.animals.valid_animals.search(params[:search], params[:page]) respond_to do |format| format.html # index.html.erb format.json { render json: @animals } end end 在所有控制器中基本相同。 基本上,脚手架轨道生成的代码在所有控制器中都是“相同的”。 我怎样才能以一种真正好的方式使它更干净,更干爽? 提前致谢

烘干岩纸剪刀

我是一个新手ruby程序员,虽然这段代码有效,但我想知道如何改进它。 我对lambdas和procs等知识非常有限,但任何建议都会很棒。 有没有办法在每种情况下简化if else语句? 另外,是否有任何替代方法可以跳过case语句,而不是将几乎整个代码作为else if语句? def rps(roll) roll_ops = [“rock”, “paper”, “scissors”] pick = roll_ops.sample result = nil if roll == pick result = “tie” else case roll when “scissors” then if pick == “paper” result = “win” else result = “lose” end when “rock” then if pick == “scissors” result = “win” else […]

在ruby脚本中实现dry-run

有谁知道如何在Ruby中实现干运行选项? 我需要这样的东西,但仅限于rubyhttps://serverfault.com/questions/147628/implementing-dry-run-in-bash-scripts 我试过这个,但其他部分不起作用: DRY_RUN = true def perform(*args) command = args if DRY_RUN command.each{|x| puts x} else command.each {|x| x} end end perform(“puts ‘Hello'”) 提前感谢任何想法。 PS我不想使用像system这样的东西(“ruby -e \”puts ‘Hello’\””)