我有一个short_code[]包含一系列短产品标识符的数组,例如["11111", "2222", "33333"]
我想创建一个包含相应"长代码"数据的数组副本:
long_code[i] = my_lookup_long_code(short_code[i])
Run Code Online (Sandbox Code Playgroud)
虽然简单的迭代很容易,但我想知道,作为一个相对红宝石的新手,什么是创建数组的"红宝石方式",这是一个简单的方法()应用于原始数组中的每个元素?
我的项目中有许多用户可用.每个用户都有不同的主页.而且我有一个默认的主页.我的实际代码在这里..
requested_url = "/limited/username" #It is constantly changing.
redirect_to(requested_url || :action => "index", :controller => "demo")
Run Code Online (Sandbox Code Playgroud)
所以,它像这样重定向页面http://localhost:3000/demo/index?%2Flimited=username.但是,实际上我需要像这样重定向的URL http://localhost:3000/limited/username.
如果requested_url为空,则重定向正确.(http://localhost:3000/demo/index).但是,如果它不是空的话,那就会错误地重定向.
请告诉我这里有什么问题?
有没有办法在db/migrate文件夹中组织迁移文件?
因为你在这个文件夹中很快就有大量的迁移文件,所以有这样的东西会很棒:
db/migrate/user_migrations/
timestamp_create_users.rbtimestamp_create_addresses.rb等等...
有一个简单的方法吗?某种配置?这是一种不好的做法,我绝对不应该这样做吗?
如果有人有任何关于此的信息,我会很高兴听到!
我可以选择使用嵌套属性创建用户。我只想跳过确认电子邮件。但
class ShipperOrder < ActiveRecord::Base
belongs_to :user
accepts_nested_attributes_for :user
end
class User < ActiveRecord::Base
has_many :shipper_orders
end
Run Code Online (Sandbox Code Playgroud)
控制器
class ShipperOrdersController < ApplicationController
def create
@shipper_order = ShipperOrder.new(order_params)
if @shipper_order.save
flash[:notice] = "Shipper order created"
else
flash.now[:alert] = @shipper_order.errors.full_messages.join(", ")
render :error
end
end
private
def order_params
params.require(:shipper_order).permit({user_attributes: [:first_name, :email,
:last_name,:mobile_phone, :password, :terms_of_service, :password_reset_required
]}, :description)
end
end
Run Code Online (Sandbox Code Playgroud)
现在我正在创建一个订单,如果用户想将此订单分配给数据库中不存在的用户。然后我在nested_attributes 的帮助下创建该用户。一切正常。我只想禁用此类用户的确认电子邮件。
我有这些模型:
老师
class Teacher < ActiveRecord::Base
has_many :days
end
Run Code Online (Sandbox Code Playgroud)
天
class Day < ActiveRecord::Base
belongs_to :teacher
end
Run Code Online (Sandbox Code Playgroud)
并运行这些查询:
active_teachers = Teacher.joins(:days).where("teacher.id" => found_teachers.pluck(:teacher_id).uniq, "days.day_name" => selected_day)
Run Code Online (Sandbox Code Playgroud)
查询(应该)的作用是:found_teachers所有具有重复的教师的数组,删除双重性并仅选择那些在相应日期具有类的教师(例如selected_day,包含字符串Monday).
因为变量中的数据量active_teachers是如此之大,以至于我无法手动记录记录(我不确定我是否正确地构建了这个查询,它确实完全符合我的要求),我试图找出它是怎么回事此查询从ActiveRecord转换为SQL.
通常我会在终端中看到Rails应用程序运行服务器的所有内容,但截至目前,我没有看到此查询说明.
所以问题是,我怎样才能看到ActiveRecord查询如何转换为SQL?
先感谢您.
这是我正在使用的两个模型,
用户模型
class User < ActiveRecord::Base
has_many :products
end
Run Code Online (Sandbox Code Playgroud)
产品型号
class Product < ActiveRecord::Base
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
现在我想找出哪个用户拥有最大数量的产品。
我知道我可以通过为用户和相关产品构建一个循环来找出答案,但是有没有办法通过活动记录查询来找出答案?
我写了这一行:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Run Code Online (Sandbox Code Playgroud)
在我的命令行,它不起作用.
我有消息:
-e:1: '$(' is not allowed as a global variable name.
Run Code Online (Sandbox Code Playgroud)
这是错误的屏幕截图:

LotusRb和Ruby on Rails之间的主要区别是什么.乍一看,LotusRb看起来与Rails非常相似.与Rails相比,Lotus的优缺点是什么?
ruby model-view-controller ruby-on-rails web-frameworks hanami
我有一个带有关联位置的 Company 对象。
公司 has_many :locations 位置所属地 :company
当我打电话时:
@company = Company.find(5).includes(:locations)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
NoMethodError: undefined method `includes' for #<Company:0x000000066ad398>
Run Code Online (Sandbox Code Playgroud)
据我所知,我正在按照 rubyonrails.org 的说明进行操作。
如何在不指定密钥的情况下仅从哈希中获取多个键的值?这是我的哈希:
{Sat, 23 Nov 2013=>12, Fri, 22 Nov 2013=>15, Thu, 21 Nov 2013=>13}
Run Code Online (Sandbox Code Playgroud)