我有一个具有状态属性的事件模型,想知道是否应该将其放入字符串或整数字段。事件可以具有三种不同的状态:“正在收集”、“活动中”或“已结束”。如果我应该采用整数解决方案,我应该在某处定义一个常量,以便可以仅使用 CLOSED 代替“2”(我应该在哪里放置这个常量?)
提前致谢!
我开始学习Rails,我无法继续前进,因为我在尝试运行时遇到错误:
bundle exec rspec spec/
Run Code Online (Sandbox Code Playgroud)
我认为错误发生在我的"models/users.rb"文件中:
class User < ActiveRecord::Base
attr_accessible :email, :name
before_save { |user| user.email = email.downcase }
validates :name, presence: true, length: { maximum: 50}
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: {with: VALID_EMAIL_REGEX },
uniquiness: { case_sensitive: false }
end
Run Code Online (Sandbox Code Playgroud)
在此之前,我做错了一件事:我应该在哪里打字
uniquiness: { case_sensitive: false }
Run Code Online (Sandbox Code Playgroud)
我键入:
uniquiness { case_sensitive: false }
Run Code Online (Sandbox Code Playgroud)
并且,在我看到此错误之前,我在项目中进行了一些更改(创建了迁移,运行本地服务器等).我记得我执行过这些命令:
bundle exec rake db:migrate
bundle exec rake db:test:prepare
bundle exec rspec /spec
Run Code Online (Sandbox Code Playgroud)
以下是我得到的错误:
Rack :: File头参数在Rack 1.5之后替换cache_control./usr/lib/ruby/gems/1.9.1/gems/activemodel-3.2.12/lib/active_model/validations/validates.rb:96:in在块中的救援'在验证中':未知验证器:'UniquinessValidator'(ArgumentError )(...)
有人可以帮帮我吗?谢谢大家:P
我是 Rails 初学者,我面临一个基本问题。我找到了几个解决方案,但没有一个能够完全描述我的问题。我有两个模型:联系人和组
Group has_many :contacts
Contact belongs_to :group
Run Code Online (Sandbox Code Playgroud)
(通过devise还有第三种用户模型)
创建新联系人时,我希望用户能够通过选择选项(如下拉字段)选择该联系人所属的组。
我在联系人表中添加了一个 :group_id 索引:
class AddGroupIdToContacts < ActiveRecord::Migration
def change
add_column :contacts, :group_id, :integer
end
end
Run Code Online (Sandbox Code Playgroud)
在 view/contacts/_form 中,我使用了 collection_select 选项来输出显示可用组的下拉字段:
<%= form_for(@contact) do |f| %>
<% if @contact.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@contact.errors.count, "error") %> prohibited this contact from being saved:</h2>
<ul>
<% @contact.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
...
<div class="field">
<%= f.label :group_id %><br>
<%= f.collection_select(:group_id, Group.all, :id, …Run Code Online (Sandbox Code Playgroud) 如何在rails应用程序的ruby中复制模型验证错误消息?
我是铁杆新手.以下代码以Foo作为模型对象:
a = Foo
a = Foo.where(age: 18)
if params[:sort] == "desc"
a = a.order("name desc")
end
Run Code Online (Sandbox Code Playgroud)
这里执行了两个查询,我想将它们组合成一个,或者你可以说我想要执行 Foo.where(age=18).order("name asc")
请记住,当不需要订单时可能存在这种情况,即params [:sort]不等于desc.
请不要给出解决方案
if params[:sort] == "desc"
a = a.where(age=18).order("name desc")
else
a = a.where(age=18)
end
Run Code Online (Sandbox Code Playgroud)
因为它使代码冗余,并且对于更多参数,它可能不起作用.
我在我的项目中使用acts_as_votable gem。由于某些奇怪的原因,我无法访问中的Vote模型表Rails console。我重新加载了development环境,甚至重新启动了计算机。
我可以upvote一个模型和get_upvotes.size投票模型。
我想做一些专门的查询,例如Vote.where(...)。当我尝试Vote.all在Rails控制台中查询时,出现错误。顺便说一下,我正在使用postgresql进行开发。
2.0.0-p353 :007 > Vote.all
NameError: uninitialized constant Vote
Run Code Online (Sandbox Code Playgroud)
该Vote模型存在于我的模型中,schema.rb而不存在于中app/models。该Vote表位于pgAdmin中。提前致谢。
rails-models ×7
models ×2
ruby ×2
activerecord ×1
duplication ×1
key ×1
pg ×1
rubygems ×1
validation ×1