我似乎不能在我的Rails模型上使用双向功能。例如,在rails控制台中,当我执行以下命令时:
r = Role.new
u = User.new
r.users << u
r.users
u.roles
rails控制台声明该角色有用户,但用户没有角色。如果我保存角色,然后从数据库中拉出用户,它有一个应该有的角色,但角色的状态在两个对象之间并不保持一致。
我只有一次数据库迁移。以下是与这两个模型相关的代码(不包括简单的数据字段)
create_table :users do |t|
end
create_table :roles do |t|
end
create_j
我试图用portfolio保存技术的嵌套属性,我有以下代码: portfolio.rb (模型)
class Portfolio < ApplicationRecord
has_many :technologies
# do not accept the insertion if name is blank
accepts_nested_attributes_for :technologies,
reject_if: lambda{ |attrs| attrs['name'].blank? }
使用ruby2.6& rails 5.2在rails控制台中创建用户引发
ActiveRecord::RecordInvalid (Validation failed: Account must exist)
我刚刚生成了Devise,所以目前还没有user_controller
模型
user.rb
class User < ApplicationRecord
belongs_to :account
end
account.rb
class Account < ApplicationRecord
has_many :users
end
控制器
account
我使用的是Rails 3.2.11、Mac OS X Mountain Lion、Ruby 1.9.3
所以我有这段代码:
class Points < ActiveRecord::Base
validates :id, :presence => true
before_create :validate_points
def validate_points
if self.amount < 0
Rails.logger.error "Invalid amount of points"
else
save!
end
end
结束
我不知道我的用户模型上的create语句有什么问题:
User.create({first_name: "Alan",....}, :without_protection => true)
给我堆栈跟踪:
ArgumentError: wrong number of arguments (2 for 1)
from /Users/alanheppenstall/.rvm/gems/ruby-1.9.3-p362/gems/activerecord-4.0.0/lib/active_record/persistence.rb:32:in `create'
from
class User < ActiveRecord::Base
attr_accessible :email, :name
validates :name,:presence=>true,
:length=>{:maximum=>15}
validates :email,:presence=>true,
:length=>{:maximum=>15}
end
我是rails的新手,最简单的验证器都不能工作。我
我在Rails 3应用程序中有相关的模型User和Channel。Channel是在创建User时创建的。
class User < ActiveRecord::Base
before_create do
self.channels.build
end
has_many :channels
end
class Channel < ActiveRecord::Base
belongs_to :user
validations block
...
end
问题是,如果对通道的验证不能通过,User将在DB上创建,而Channel不会。在什么
我有网站,用户可以创建产品的注册和产品可以有核对表。
我有一张列有下列栏的核对表:
id | product_id | content | archived
我是刚开始rails测试的。我写了下面的测试
test 'should have content' do
checklist = Checklist.new
assert checklist.save
end
并使用以下命令运行测试
ruby -I test test/models/checklist_test.rb
测试失败,的错误被认为是真实的错误。
是因为这个问题,可以使用user
我被一个小问题困住了,但一直以来我都在努力找出我做错了什么。我的场景是,我有一个现有的模型user,现在我创建了另一个名为“`user_comment”的模型。以下是我所述的详细资料:
用户模型:
class User < ActiveRecord::Base
has_many :user_comments
end
User_comment模型:
class UserComment < ActiveRecord::Base
belongs_to :user
end
迁移文件:
class CreateUserComments < ActiveRecord::
如何自动检查上传镜像的MD5哈希值,避免重复镜像?
我想防止用户在我的rails应用程序中上传重复的图像。我有两个模型,名为ImageHash和Image,它们具有ono-to-one关系。图像模型将负责在亚马逊服务器上上传图像。我想检查图像是否重复。这就是为什么我计划在Imagehash模型中对二进制图像进行md5哈希。我该如何轻松地实现这个ruby on rails呢?
我正在建立使用ruby on rails的在线录取系统。我想计算并存储在包含user_id的表格和排名后,注册过程结束后,从管理仪表板的一个按钮点击。如何做到这一点?我应该使用ActiveRecord::Base.connect()然后使用execute()将其放入管理模型的函数中吗?我知道sql查询应该是
INSERT into ranks
(user_id, rank)
SELECT user_id,
(select count(*)+1 from academics B where A.hs_mks_per < B.hs_mks_per ) AS Rank
from
我有两个模型(ModelA和ModelB),每个模型都有FactoryGirl工厂。我希望ModelB的工厂能够(A)创建测试数据,并(B)构建(不保存到数据库)显示给客户的样本数据。由于我的模型中的Rails验证,我无法让(A)工作。
ModelA:
class ModelA < ActiveRecord::Base
belongs_to :model_b
validates_presence_of :model_b
end
ModelA的工厂:
FactoryGirl.define do
factory :model_a do
some_attr "hel
根据Ruby on Rails约定,控制器名称是复数形式的,而模型名称是单数形式的。例如:一个用户控制器,但一个用户模型。
rails generate controller Users
rails generate model User name:string email:string
现在打开迁移文件
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :email
t
我正致力于将Ruby2.2.2 (Rails 4.1)应用程序升级到Ruby2.5.7 (Rails 5.2),对于一些模型,我遇到了一些错误
从搜索来看,似乎有一些通用的activerecord验证规则/消息?这些信息是:
Status is invalid
User is invalid`
我对Ruby充其量是个新手--因此,任何关于解决这个错误的最佳方法的建议都会受到欢迎!
我使用的是Ruby on Rails 3.0.7,我希望在运行时找到一些用于验证的记录,但需要为该finder方法传递\设置值。也就是说,在my类中,我有以下内容:
class Group < < ActiveRecord::Base
validates :relation_id,
:presence => true,
:inclusion => {
:in => ... # Read below for more information about
}
end
如果我将:in设置为
:in => User.fin