小编hol*_*den的帖子

循环在rails中的列

这可能很容易,但我很难搞清楚.

我有一个部分:

<% for room in @scrape %>
<tr id="page_<%= room.id %>">
    <th scope="row" class="<%= cycle("spec", "specalt") -%>"><%=h room.name %></td>
    <td class="<%=current_cycle%>"><%=h room.day1 %></td>
    <td class="<%=current_cycle%>"><%=h room.day2 %></td>
    <td class="<%=current_cycle%>"><%=h room.day3 %></td>
    <td class="<%=current_cycle%>"><%=h room.day4 %></td>
    <td class="<%=current_cycle%>"><%=h room.day5 %></td>
    <td class="<%=current_cycle%>"><%=h room.day6 %></td>
    <td class="<%=current_cycle%>"><%=h room.day7 %></td>
    <td class="<%=current_cycle%>"><%= select_tag("room[#{room.id}]", options_for_select(0..room.spots,0)) %></td>

</tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)

从find_by_sql结果如下:

    ID         Room     Day1     Day2   Day3    Day4    Day5    Day6    Day7
   18298   Blue Room   13.23    13.23   13.23   13.23   13.23   13.23   13.23
Run Code Online (Sandbox Code Playgroud)

但我不知道会有多少天,我如何通过不同日期的列结果循环?

ruby sql loops ruby-on-rails partial

2
推荐指数
1
解决办法
1730
查看次数

什么时候放弃积极的记录?

我不是Rails的新手,但到目前为止我还没有做过这么复杂的事情,所以我很好奇一个更有经验的rails开发者可能分享的内容:

我有一个SQL查询,它将4个左右的表连接到一个输出中:

SELECT places.id, places.name, places.email, places.website, places.blurb, external_ratings.rating, photos.data_file_name
    FROM `scannables` 
    INNER JOIN places ON scannables.place_id = places.id
    INNER JOIN locations ON places.location_id = locations.id
    LEFT JOIN external_ratings ON scannables.place_id = external_ratings.place_id
    LEFT JOIN photos ON scannables.place_id = photos.place_id
    WHERE locations.id = 2474 AND scannables.bookdate BETWEEN '2009-08-29' and date_add('2009-08-29', INTERVAL 4 DAY)
    GROUP BY scannables.place_id
    HAVING SUM(scannables.available) >= 4
    ORDER BY SUM(scannables.available) DESC, external_ratings.rating DESC
Run Code Online (Sandbox Code Playgroud)

我拥有在各种模型中定义的所有表关系,并且最初只使用这些定义的关系(使用活动记录)来提取各种数据,并且它工作正常,除了主要查询,最大的是非常慢,执行多个indv.查询.我的问题是,我应该在这种情况下转储Active Record并使用find_by_sql ......还是我错过了什么?

什么是Rails方式?

谢谢

ruby sql activerecord ruby-on-rails

2
推荐指数
1
解决办法
391
查看次数

ruby对象数组...或哈希

我现在有一个对象:

class Items
  attr_accessor :item_id, :name, :description, :rating

  def initialize(options = {})
      options.each {
        |k,v|
        self.send( "#{k.to_s}=".intern, v)
      }
  end

end
Run Code Online (Sandbox Code Playgroud)

我把它作为单个对象分配到一个数组中......

@result = []

some loop>>
   @result << Items.new(options[:name] => 'name', options[:description] => 'blah')
end loop>>
Run Code Online (Sandbox Code Playgroud)

但不是将我的单个对象分配给数组......我怎样才能使对象本身成为一个集合?

基本上想要以这样的方式拥有对象,以便我可以定义诸如的方法

def self.names
   @items.each do |item|
      item.name
   end
end
Run Code Online (Sandbox Code Playgroud)

我希望这是有道理的,可能我忽视了一些宏伟的计划,这将使我的生活在两行中变得无比轻松.

ruby arrays methods ruby-on-rails class

2
推荐指数
1
解决办法
7246
查看次数

汇总数据的数据库设计

我有一个新表,我将添加到一堆其他汇总数据,基本上通过计算每周avgs来减少一些负载.

我的问题是我是否会因为一个模型而不是另一个模型而变得更好.一种模型,一周中的几天作为一列,另外一列价格或另一个模型作为DOW的一系列字段,每个都需要付出代价.

我想知道哪些可以节省我的速度和/或头痛?或者至少是权衡.

IE浏览器.

ID   OBJECT_ID   MON  TUE  WED  THU  FRI  SAT  SUN   SOURCE
Run Code Online (Sandbox Code Playgroud)

要么

ID   OBJECT_ID   DAYOFWEEK   PRICE   SOURCE
Run Code Online (Sandbox Code Playgroud)

mysql sql postgresql database-design ruby-on-rails

2
推荐指数
1
解决办法
175
查看次数

Rails 缓存与 Money gem (eu_central_bank)

我发现了 Money gem 的这个附加组件,它从 ECB 欧洲中央银行更新(每 24 小时更新一次汇率),但我不确定应该如何在使用多种货币的 Rails 应用程序中进行缓存。

http://github.com/RubyMoney/eu_central_bank

eu_bank ||= EuCentralBank.new
eu_bank.update_rates
#Rails.cache.fetch('rates', :expires_in => 24.hours) { eu_bank.update_rates }
rate = eu_bank.exchange_with(Money.new(100, session[:currency]), "USD").to_f
Run Code Online (Sandbox Code Playgroud)

它有一个功能可以将费率写入某个文件......但我也不确定这就是我想要的。我还使用具有只读文件系统的heroku。

eu_bank.save_rates("/some/file/location/exchange_rates.xml")
Run Code Online (Sandbox Code Playgroud)

我也找不到任何方法来检查该物体的年龄。我只是想知道每 24 小时加载一次并持续用于我的整个 Rails 应用程序的最佳选择。有什么指点吗?

ruby memcached caching currency ruby-on-rails

2
推荐指数
1
解决办法
2476
查看次数

SQL聚合函数使用MIN和AVG

如何在数据中省略零?

例如使用MIN功能?我希望最小值除了0 ...

我怎样才能获得下一个最大的?

MIN(availables.price)
Run Code Online (Sandbox Code Playgroud)

如果我使用AVG功能,还有一种通常的方法可以以相同的方式跳过0吗?问题是我继承的表不使用NULL值,但对所有财务数据都有0.00.

谢谢,

sql average aggregate ruby-on-rails aggregate-functions

1
推荐指数
2
解决办法
3536
查看次数

不同的路由,但在Rails中使用相同的控制器进行模型子类

我有一个Model属性,它有使用STI的子类,

我希望所有人都使用相同的控制器,只有不同的视图部分取决于子类.

Property
Restaurant < Property
Landmark < Property
Run Code Online (Sandbox Code Playgroud)

除了我不确定如何辨别控制器内的子类以呈现正确的视图之外,它还可以工作.IE浏览器./餐厅工作,并去物业控制器,但我不能告诉他们,他们想要餐厅的子类?

map.resources :restaurant, :controller => :properties
map.resources :properties
Run Code Online (Sandbox Code Playgroud)

routing routes ruby-on-rails subclass single-table-inheritance

1
推荐指数
1
解决办法
1823
查看次数

使用角色掩码查找具有特定角色的所有用户

我一直在当前项目中使用位掩码来跟踪用户角色,但现在我需要能够为所有具有特定角色的用户执行查找.

我的角色设置如下:

  ROLES = %w[admin editor moderator contributor]

  def roles
    ROLES.reject do |r|
      ((roles_mask || 0) & 2**ROLES.index(r)).zero?
    end
  end

  def roles=(roles)
    self.roles_mask = (roles & ROLES).map { |r| 2**ROLES.index(r) }.sum
  end

  def role_symbols
    roles.map(&:to_sym)
  end
Run Code Online (Sandbox Code Playgroud)

我可以找到具有完全相同位图的所有用户,但不知道如何提取一个特定角色,在这种情况下,所有用户都具有"编辑器"角色.

ruby ruby-on-rails bitmap declarative-authorization ruby-on-rails-3

1
推荐指数
1
解决办法
2558
查看次数

ruby中的一行哈希创建

我怎样才能非常简单地使用像"times"这样简单的东西在ruby中构造一个哈希

我有一个@date(即= Date.today)然后好几天...说5

5.times { |i| @date_range[:day] = (@date+i).strftime("%Y-%m-%d") }
Run Code Online (Sandbox Code Playgroud)

我知道必须有一些超级简单的东西.

谢谢...

ruby arrays hash ruby-on-rails

0
推荐指数
1
解决办法
2190
查看次数

一行红宝石阵列的创建和人口

这是相当微不足道的,但令我困扰的是,我还没有找到使用谷歌或这个论坛的答案.但是我怎么能把它变成一条线呢?无需在上面声明房间数组?

rooms = []
hwdata.availability.each {|room| rooms << room.name}
Run Code Online (Sandbox Code Playgroud)

ruby arrays

0
推荐指数
1
解决办法
442
查看次数

未定义方法的虚拟属性问题

我过去曾使用虚拟属性,但我似乎无法超越这个,而且我知道答案可能正在盯着我.

我有一个这样的模型:

model Confirmation.rb

class Confirmation < ActiveRecord::Base

  #attr_accessible :confirmation, :confirmation_token
  #attr_accessible :confirmation_token

  def confirmation_token
    confirmation.confirmation_token if confirmation
  end

  def confirmation_token=(token)
    self.confirmation = Booking.find_by_confirmation_token(token)
  end

end
Run Code Online (Sandbox Code Playgroud)

你的平均脚手架控制器

confirmations_controller.rb

  def new
    @confirmation = Confirmation.new(:confirmation_token => params[:confirmation_token])

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @confirmation }
    end
  end
Run Code Online (Sandbox Code Playgroud)

new.html.erb

<h1>New confirmation</h1>

<% form_for(@confirmation) do |f| %>
  <%= f.error_messages %>

    <%= f.hidden_field :confirmation_token %>

...
Run Code Online (Sandbox Code Playgroud)

的routes.rb

  map.confirmation "confirmation/:confirmation_token", :controller => "confirmations", :action => "new"
  map.resources :confirmations
Run Code Online (Sandbox Code Playgroud)

错误

未定义的方法`confirm ='for# …

ruby virtual attributes ruby-on-rails

0
推荐指数
1
解决办法
2389
查看次数

正则表达式的全名

我最近在表单中收到了很多名字条目.虽然也许我应该有2个单独的名字和姓氏字段,但这在我看来总是有点多.但我想尝试获得一个全名,基本上只能通过至少有一个空格来确定.

我想出了这个,但我想知道是否有人有更好的,可能更简单的解决方案?

/([a-zA-Zàáâäãåèéêëìíîïòóôöõøùúûüÿýñç?šžÀÁÂÄÃÅÈÉÊËÌÍÎÏÒÓÔÖÕØÙÚÛÜŸÝÑßÇŒÆ?ŠŽ?ð,.'-]{2,}) ([a-zA-Zàáâäãåèéêëìíîïòóôöõøùúûüÿýñç?šžÀÁÂÄÃÅÈÉÊËÌÍÎÏÒÓÔÖÕØÙÚÛÜŸÝÑßÇŒÆ?ŠŽ?ð,.'-]{2,})/
Run Code Online (Sandbox Code Playgroud)

这基本上是这个/([a-zA-Z,.'-]) ([a-zA-Z,.'-])/加上unicode的支持.

regex validation ruby-on-rails ruby-on-rails-3

0
推荐指数
1
解决办法
2322
查看次数