有没有一些快速的方法可以找出模型的任何字段或其嵌套模型(也称为关联)的任何字段是否发生了变化?
这是我的阵列:
array = [:one,:two,:three]
Run Code Online (Sandbox Code Playgroud)
我想将to_s方法应用于我的所有数组元素array = ['one','two','three'].
我该怎么做(将可枚举的每个元素转换为其他元素)?
我有这个form_for:
<%= form_for [post, Comment.new,], :remote => true do |f| %>
<%= f.text_area :content, :cols =>10, :rows => 1%>
<% end %>
<%= f.submit :class => "input_comment" %>
Run Code Online (Sandbox Code Playgroud)
那会生成下一个代码html:
<form method="post" id="new_comment" data-remote="true" class="new_comment"
action="/post/4efcda9e1d41c82486000077/comments" accept-charset="UTF-8"><div
style="margin:0;padding:0;display:inline"><input type="hidden" value="?" name="utf8">
<input type="hidden" value="ctVfDF/O4FIR91I7bC5MVezQmutOCkX3dcXe73uNPZY=" name="authenticity_token">
<textarea rows="1" name="comment[content]" id="comment_content" cols="10"></textarea>
<input type="submit" value="Create Comment" name="commit" class="input_comment">
</form>
Run Code Online (Sandbox Code Playgroud)
如果我在同一页面中有多个表单,则不是具有相同ID的html有效.
在同一页面中有这么多表单是无效的HTML.
如何通过rails 3.1中的form_for方法助手更改id autogenerate?
我有一个查询来获取特定顺序的人的ID,比如说:
ids = [1, 3, 5, 9, 6, 2]
然后,我想要通过获取这些人 Person.find(ids)
但它们总是以数字顺序提取,我通过执行以下方式知道:
people = Person.find(ids).map(&:id)
=> [1, 2, 3, 5, 6, 9]
Run Code Online (Sandbox Code Playgroud)
如何运行此查询以使顺序与ids数组的顺序相同?
我使这个任务变得更加困难,因为我只想执行查询以从给定的ID中获取一次.因此,执行多个查询是不可能的.
我尝试过类似的东西:
ids.each do |i|
person = people.where('id = ?', i)
Run Code Online (Sandbox Code Playgroud)
但我认为这不起作用.
我一直在努力解决我认为的一个简单问题:
使用simple_form 1.4 gem在Rails 3.0.8中工作.
我有两个模型,所有者和owner_types;
class Owner < ActiveRecord::Base
belongs_to :own_type
attr_accessible :name, :own_type_id
end
class OwnerType < ActiveRecord::Base
has_many :owners
attr_accessible :name, :subtype_name
end
Run Code Online (Sandbox Code Playgroud)
在我的所有者视图的_form部分中,我希望有一个选择框,显示owner_type关联的名称和子类型名称.
....像这样的东西:所有者类型:[名字| subtype_name]例如.[政府| 联邦]; [政府| 市]
我的视图现在包含:app/views/owners/_form.html.erb
<%= simple_form_for @owner do |f| %>
<%= f.error_messages %>
<%= f.input :name %>
<%= f.association :owner_type, :include_blank => false %>
<%= f.button :submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
... f.association默认只列出owner_type.name字段.你如何指定不同的字段,或者在我的情况下指定两个字段?
所有帮助表示赞赏; 提前致谢.
DJ
我正在寻找的功能类似于rake middlewareRails中的命令,但通用机架应用程序除外.
我有一个字符串数组,并希望从中得到一个哈希值.数组的每个元素都是键,我想从该键计算值.有没有Ruby方式这样做?
例如:
['a','b'] 转换为 {'a'=>'A','b'=>'B'}
我让用户在Ruby on Rails网站上输入日期.我将日期解析为DateTime对象,例如:
date = DateTime.new(params[:year].to_i, params[:month].to_i, params[:day].to_i, params[:hour].to_i, params[:minute].to_i)
Run Code Online (Sandbox Code Playgroud)
要么
date = DateTime.parse(params[:date])
Run Code Online (Sandbox Code Playgroud)
两个DateTimes都不会出现在我之前设置的用户的时区中,例如:
Time.zone = "Pacific Time (US & Canada)"
Run Code Online (Sandbox Code Playgroud)
如何解析上面的DateTimes以使其处于正确的时区?我知道该DateTime.new方法的时间偏移量为第7个参数.是否有一种简单的方法可以在给定时间内查找时区的偏移量?或者我应该使用其他东西DateTime?
我有一个rails应用程序的默认时区设置.和Date对象的一个实例.
如何让Date#beginning_of_day返回指定时区内的一天的开头,而不是我当地的时区.
是否有其他方法可以在给定日期的指定时区内开始白天时间?
date = Date.new(2014,10,29)
zone = ActiveSupport::TimeZone.new('CET')
date.foo(zone) # should return "Wed, 29 Oct 2014 00:00:00 CET +01:00"
zone = ActiveSupport::TimeZone.new('UTC')
date.foo(zone) # should return "Wed, 29 Oct 2014 00:00:00 UTC +00:00"
Run Code Online (Sandbox Code Playgroud) 我有一个需要在SSL下运行的Rails应用程序.我尝试了ssl_requirement,但似乎我必须输入每个控制器中的所有操作.
是否有任何方法可以在应用程序控制器中使用ssl_requirement添加before_filter,以便当用户请求在http时,应用程序将自动重定向到https?
谢谢大家.:)
ruby ×5
activerecord ×2
timezone ×2
arrays ×1
date ×1
datetime ×1
enumerable ×1
form-for ×1
middleware ×1
rack ×1
rake ×1
simple-form ×1
ssl ×1