在Rails上5.
我有一个Order带有description属性的模型.如果满足以下两个条件之一,我只想验证它的存在:如果当前步骤等于第一步或者如果require_validation等于true.
我可以根据以下一个条件轻松验证:
validates :description, presence: true, if: :first_step?
def first_step?
current_step == steps.first
end
Run Code Online (Sandbox Code Playgroud)
但我不知道如何添加另一个条件并验证其中一个是否属实.
就像是:
validates :description, presence: true, if: :first_step? || :require_validation
Run Code Online (Sandbox Code Playgroud)
谢谢!
使用 Rails 4
我想知道(并且很难找到答案)是否可以直接从视图调用 ActiveRecord 方法,例如:
<%= Article.where(approved: true).count %>
Run Code Online (Sandbox Code Playgroud)
或者
<%= Article.where("short_answer is NOT NULL and short_answer != ''").count %>
Run Code Online (Sandbox Code Playgroud)
我意识到通常的做法是将这些存储在控制器内的实例变量中,但由于我使用的是部分,我不能这样做。
这样做好吗?能痛吗?有没有更好的方法来解决这个问题(例如辅助方法)?谢谢!
在我的Room模型中,我有一个名为 的属性available_days,它被存储为一个数组。
例如:
Room.first.available_days
=> ["wed", "thurs", "fri"]
Run Code Online (Sandbox Code Playgroud)
找到数组大小等于 3 的所有房间的最佳方法是什么?
我试过类似的东西
Room.where('LENGTH(available_days) = ?', 3)
Run Code Online (Sandbox Code Playgroud)
没有成功。
更新:的数据类型available_days是一个字符串,但为了存储一个数组,我从我的模型序列化属性:
应用程序/模型/room.rb
serialize :available_days
Run Code Online (Sandbox Code Playgroud) 使用Rails 4 ..
我已经使用javascript打开了一个页面
<%= link_to "how to choose a rating", ratingsystem_path, :onclick=>"window.open(this.href,'create_company', 'height=600, width=600');return false;" %>
Run Code Online (Sandbox Code Playgroud)
但是当我添加一个链接来关闭该页面时
<%= link_to "Close page", :onclick => "window.close();" %>
Run Code Online (Sandbox Code Playgroud)
它不起作用.我做错了吗?也许用一个标签代替?
使用rails 4,无法在此找到文档.我想将字符串中每个单词的第一个字母大写,但保留已经大写的字母.
我想要以下输出:
how far is McDonald's from here? => How Far Is McDonald's From Here?
MDMA is also known as molly => MDMA Is Also Known As Molly
i drive a BMW => I Drive A BMW
Run Code Online (Sandbox Code Playgroud)
我以为.titleize会这样做,但那会BMW变成Bmw.感谢您的任何帮助.
有什么区别target="_blank"和target=_blank?
似乎有相同的行为,但只是想确保一个人比另一个人更好(以及为什么).我一直使用引号,但我正在阅读rails教程,并意识到迈克尔不使用它们.
我正在使用 Rails 4 尝试使用 in_time_zone 助手,但无法理解奇怪的行为。
在本地主机(或从控制台)将我的时间戳转换为 UTC 时,一切都按预期工作:
"2016-12-05 10:00 pm".to_time.in_time_zone("UTC)
=> 2016-12-06 05:00:00 UTC # this is the correct utc time
Run Code Online (Sandbox Code Playgroud)
但是,在我的生产站点上,它返回了不正确的时间。
"2016-12-05 10:00 pm".to_time.in_time_zone("UTC)
=> 2016-12-05 22:00:00 UTC # this is incorrect
Run Code Online (Sandbox Code Playgroud)
不知道这是怎么可能的。无论如何,UTC 应该是 UTC。任何帮助理解为什么会发生这种情况都会很棒。
ruby ×5
html ×2
activerecord ×1
javascript ×1
methods ×1
sql ×1
string ×1
timezone ×1
utc ×1
validation ×1