小编Kar*_*arl的帖子

铁路3 - 闪存消息逃脱,最佳方式unescape

现在Rails 3逃脱了视图中的所有评估元素(好),但它也逃避了我的flash消息.我喜欢我的flash消息中的偶然链接(或强烈或强调).

一条flash消息:

flash[:notice] = "<strong>Bob</strong> was sucessfully checked in.<br />If you made a mistake, you can <a href=\"/scouts/#{@scout.id}/check_out\">check out Bob</a> to undo."
Run Code Online (Sandbox Code Playgroud)

变得乱码,逃脱,无法使用.

我可以使用raw以下方法来消息:

- flash.each do |name, msg|
  = content_tag :div, raw(msg)
Run Code Online (Sandbox Code Playgroud)

但现在每个flash消息都没有转发.

我怎么能只看到一个闪烁的消息?或只是信息的一部分?

ruby-on-rails-3

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

从相机捕获图像到表单或html5画布

我需要将图像从网络摄像头(系留相机等)捕获到表单或html5画布中,以便我可以将图像保存到服务器.此外,我希望能够在页面中实时预览图像.

例如,我有一个浏览器在注册检查站运行.我想拍一张当前站在桌子前面的与会者的照片,并将该图像提交到数据库中.然后,我可以使用该图像打印参加者的徽章及其上的图片.

我正在使用导轨和回形针,但我怀疑这很重要.

以前做过这个的人,或者有一些想法怎么做?

html html5 image-processing

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

Rails用范围扩展字段,PG不喜欢它

我有一个小部件模型.窗口小部件属于商店模型,属于区域模型,属于公司.在公司模型中,我需要找到所有相关的小部件.简单:

class Widget < ActiveRecord::Base
  def self.in_company(company)
    includes(:store => {:area => :company}).where(:companies => {:id => company.id})
  end
end
Run Code Online (Sandbox Code Playgroud)

这将产生这个美丽的查询:

> Widget.in_company(Company.first).count

SQL (50.5ms)  SELECT COUNT(DISTINCT "widgets"."id") FROM "widgets" LEFT OUTER JOIN "stores" ON "stores"."id" = "widgets"."store_id" LEFT OUTER JOIN "areas" ON "areas"."id" = "stores"."area_id" LEFT OUTER JOIN "companies" ON "companies"."id" = "areas"."company_id" WHERE "companies"."id" = 1
 => 15088 
Run Code Online (Sandbox Code Playgroud)

但是,我后来需要在更复杂的范围内使用此范围.问题是AR通过选择单个字段来扩展查询,这些字段在PG中失败,因为所选字段必须在GROUP BY子句或聚合函数中.

这是更复杂的范围.

def self.sum_amount_chart_series(company, start_time)
  orders_by_day = Widget.in_company(company).archived.not_void.
                  where(:print_datetime => start_time.beginning_of_day..Time.zone.now.end_of_day).
                  group(pg_print_date_group).
                  select("#{pg_print_date_group} as print_date, sum(amount) as total_amount")

end

def self.pg_print_date_group …
Run Code Online (Sandbox Code Playgroud)

postgresql activerecord ruby-on-rails

8
推荐指数
2
解决办法
1259
查看次数

Rails 3.1静态资产 - 必须通过预编译为生产资产?

我对生产模式下新Rails 3.1资产管道的理解如下: - >

  1. config.action_controller.asset_host = "https://mybucket.s3.amazonaws.com"
  2. config.assets.compile = false
  3. app/assets 被检查回购
  4. bundle exec rake assets:预编译并与S3同步(所有资产)
  5. public/assets 没有检查回购

综上所述,我认为Rails会查找S3上的所有资产,而我不需要它们存储库中.或者至少我不需要回购中的预编译资产public/assets.

我在heroku上发现了这个,如果没有config.assets.compile = true,它就会在S3上找不到预编译的资产.并且heroku 必须经历所有资产的编译阶段,但随后将服务于S3.跑heroku run rake assets:precompile不蹲.生产过程将重新编译所有内容.

咦?这对我来说毫无意义.

我觉得你不需要用图像填充你的回购,让你的CDN做你的工作.

我觉得这是不正确的.我是对还是错?

ruby-on-rails-3.1 asset-pipeline

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

代码块中的Markdown换行符

使用Redcarpet,当我在我的降价中包含类似下面的内容时,它不会考虑任何换行符或缩进.我在线的末尾尝试了两个空格.代码之间的额外行.似乎没什么用.

```xml
<?xml version="1.0" encoding="UTF-8"?>
<hash>
   <money>3</money>
</hash>

```
Run Code Online (Sandbox Code Playgroud)

我知道了:

<?xml version="1.0" encoding="UTF-8"?> <hash> <money>3</money> </hash>
Run Code Online (Sandbox Code Playgroud)

以下是Redcarpet设置:

Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true, :fenced_code_blocks => true, :no_intra_emphasis => true, :lax_html_blocks => true)
Run Code Online (Sandbox Code Playgroud)

我需要做些什么来使线条正确断开并保留缩进,就像在这里或在GitHub上一样?

更新 - 源代码如下:

<pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
                &lt;hash&gt;
                &lt;money&gt;3&lt;/money&gt;
                &lt;/hash&gt;  
                </code></pre>
Run Code Online (Sandbox Code Playgroud)

ruby markdown haml redcarpet

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

ActiveRecord:确保只有一条记录具有特定的属性值?

我有一个种族表,在不同的州有很多种族.但是我需要确保只有一个种族被标记为current = true.这是我在Race模型验证中使用的内容.

# current: boolean
validate :only_one_current

private
def only_one_current
  if self.current && (Race.current_race.id != self.id)
    errors.add(:base, "Races can have only one current race")
  end
end
Run Code Online (Sandbox Code Playgroud)

这似乎在大多数时间都有效,但偶尔也没有,我不知道为什么.当它不起作用时,它不允许在删除当前不同的记录之后用current = t保存新记录.我认为这与AR的持久性有关.

必须有更好的方法来做到这一点?

validation activerecord ruby-on-rails-3

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