小编Noz*_*Noz的帖子

如何在Ruby on Rails中创建锚点并重定向到此特定锚点

我正在尝试为我博客上的每条评论创建独特的锚点,这样一个人就可以获取一个锚点的网址并将其粘贴到浏览器中,这将自动加载页面并向下滚动到页面中评论开始的位置.

也许我正在以错误的方式解决这个问题,但我已经尝试过这个但是无济于事.

注释视图 - 失败1 - 当粘贴在浏览器中时,此链接不会向下滚动到所需位置

<%= link_to '#', :controller => 'posts', :action => 'show', :id => comment.post, :anchor => 'comment_' << comment.id.to_s %>
Run Code Online (Sandbox Code Playgroud)

注释控制器 - 失败2 - 在浏览器中更正URL但没有滚动发生它只是停留在页面顶部

redirect_to :controller => 'posts', :action => 'show', :id => @post, :anchor => 'comment_' + @comment.id.to_s
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我会非常感激:)

更新:下面的解决方案几乎可以工作,但是我提出了以下URL,如果我点击它就不会滚动到它.

#ie http:// localhost:3000/posts/please-work

ruby anchor ruby-on-rails hyperlink page-jump

37
推荐指数
2
解决办法
3万
查看次数

Ruby如果.. elsIf .. else在一行?

使用ruby三元运算符,我们可以为一个简单的if else构造编写以下逻辑:

a = true  ? 'a' : 'b' #=> "a"
Run Code Online (Sandbox Code Playgroud)

但是,如果我想写这个if foo 'a' elsif bar 'b' else 'c'呢?

我可以把它写成如下,但它有点难以遵循:

foo = true
a = foo  ? 'a' : (bar ? 'b' : 'c') #=> "a"

foo = false
bar = true
a = foo  ? 'a' : (bar ? 'b' : 'c') #=> "b"
Run Code Online (Sandbox Code Playgroud)

有没有更好的选择来处理这种情况,或者如果我们希望将if..elif..else逻辑压缩成一行,这是我们最好的选择吗?

ruby logic

22
推荐指数
3
解决办法
4万
查看次数

为什么在Chrome中使用CSS3列会删除列表中的项目编号

当我添加css来操纵列数时,我注意到chrome正在删除列表项上的数字...

例如:

<ol style =-webkit-column-count: 2;...">
   ....
</ol>
Run Code Online (Sandbox Code Playgroud)

上面的确设法按照预期将li溢出到一个单独的列中,但它也删除了默认的项目编号.这在Firefox中不会发生,只有chrome.

有任何想法吗?

css google-chrome html-lists

14
推荐指数
2
解决办法
4903
查看次数

具有多个项目的Twitter Bootstrap响应轮播

我正在尝试使用多个项目设置Twitter Bootstrap轮播,同时保持响应能力.

我有一个用于测试设置的jsfiddle http://jsfiddle.net/Va8Un/

我想要发生的是显示4个图像,每个图像都带有标题以在旋转木马窗格中保存项目标题等,并且应调整它们以适应屏幕以始终保持在同一行.现在它完全无视我做出调整图像尺寸与屏幕的任何企图,我想通设置IMG max-width:100%;会做的伎俩,但它似乎并不影响它.此外,第四个图像被推到第二行,因为图像没有调整大小:

在此输入图像描述

有什么方法可以用纯CSS来解决这个问题,还是应该寻找Twitter Bootstrap以外的选项?

你可以在这里查看结果:http://jsfiddle.net/Va8Un/embedded/result/

这是HTML:

<div class="container">
    <div class="carousel slide" id="myCarousel">
        <div class="carousel-inner">
          <div class="item active">
                <ul class="thumbnails span12">
                    <li>
                        <div class="caption">
                            <h5>Caption</h5>
                        </div>
                        <div class="thumbnail">
                            <img src="http://placehold.it/260x180" alt="">
                        </div>
                    </li>
                    <li>
                        <div class="caption">
                            <h5>Caption</h5>
                        </div>
                        <div class="thumbnail">
                            <img src="http://placehold.it/260x180" alt="">
                        </div>
                    </li>
                    <li>
                        <div class="caption">
                            <h5>Caption</h5>
                        </div>
                        <div class="thumbnail">
                            <img src="http://placehold.it/260x180" alt="">
                        </div>
                    </li>
                    <li>
                        <div class="caption">
                            <h5>Caption</h5>
                        </div>
                        <div class="thumbnail">
                            <img src="http://placehold.it/260x180" alt="">
                        </div>
                    </li>
                </ul>
          </div>         
          <div class="item"> …
Run Code Online (Sandbox Code Playgroud)

css responsive-design twitter-bootstrap

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

从本地回形针存储迁移到S3

我们最近搬到了一个新的虚拟主机,它提供了有限的存储空间,所以我们试图将通过Paperclip gem上传的所有用户上传(头像,文件等)移动到Amazon S3.我有几百个文件都对应于我现在试图集中迁移的不同模型.

我发现这个文件引入了一个漂亮的回形针耙任务:

rake paperclip:refresh:missing_styles

这个命令为我做了一些工作,但是,我注意到它只是设置文件结构而不发送任何数据 - 此外它没有设置使用调用中的:styles散列定义的任何缩略图has_attached_file.也就是说,我在我的一个模型上设置了以下回形针:

class User < ActiveRecord::Base
  has_attached_file :avatar,
    :styles => {
      :thumb => "100x100#",
      :small  => "150x150>",
      :medium => "200x200" }
end
Run Code Online (Sandbox Code Playgroud)

运行命令后,这是一些示例输出:

$ rake paperclip:refresh:missing_styles
Regenerating User -> avatar -> [thumb, :small, :medium]
Regenerating Mercury::Image -> image -> [:medium, :thumb]
Regenerating Profile -> image -> [:home_feature, :large, :medium, :thumb]
Regenerating Page -> preview -> [:portfolio]
Regenerating Category -> default_image -> [:home_feature, :large, :medium, :thumb]
Run Code Online (Sandbox Code Playgroud)

导航到我的S3 Bucket我可以看到所有目录都已正确设置和每个附件,但仅适用于原始图像文件,它们都是0字节.我误解了这个命令的用法吗?我找不到任何其他工具将批量文件的整个目录上传到S3,如果有一个安全的工具已经覆盖了这个而不需要付款那么我就是张开耳朵.我已经尝试构建一个ruby脚本来插入他们的SDK并手动上传这些文件,但他们的Ruby文档并不是很好.

ruby ruby-on-rails amazon-s3 paperclip

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

手动使低级缓存过期

我正在使用以下低级缓存来处理我的Rails应用程序中的五篇最新新闻文章:

@recent_news = Rails.cache.fetch("recent_news", :expires_in => 1.hour) do
  News.order("created_at desc").limit(5)
end
Run Code Online (Sandbox Code Playgroud)

有没有办法在创建新的新闻文章之前保持此查询缓存?我正在考虑使用观察者手动使缓存过期,但不确定是否有办法实际执行此操作,例如:

class NewsObserver < ActiveRecord::Observer
  def after_create
    #expire recent_news cache
  end
end
Run Code Online (Sandbox Code Playgroud)

caching ruby-on-rails-3

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

Rails 3日期时间比较带有ActiveRecord查询中的日期

我正在尝试在模型中搜索等于特定日期的任何日期,同时省略时间戳.在Rails中,我可以简单地执行此操作DateTime.to_date == somedate,但是我不认为在SQL中使用to_date方法在create_at之类的整个列中应用to_date方法非常容易:

Foo.where("created_at == some_day_without_time_stamp").count
Run Code Online (Sandbox Code Playgroud)

最初我认为,因为我使用的是postgresql数据库,我可以简单地使用psql语法,但我更愿意将它留给ActiveRecord来决定哪些sql最适用,并保持我的代码与数据库供应商无关.这可能没有任何额外的插件或宝石吗?

activerecord datetime date ruby-on-rails-3

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

Visual Studio 2013中的自定义脚手架模板

以前,使用Visual Studio 2012,我能够将CodeTemplates文件夹放到我的项目目录中,然后修改现有T4 templates或添加全新的T4模板以满足我的特定代码生成要求.

似乎前面描述的方法将不再适用于Visual Studio 2013引入的新脚手架引擎.特别是,新的脚手架逻辑似乎存在于此:

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding

我假设您需要构建一个新的自定义脚手架DLL并使用Visual Studio注册它以执行您自己的代码生成.当然,我不知道该怎么做.

那么,有没有人知道在Visual Studio 2013中使用自定义T4模板生成代码(例如视图)的方法?

t4 scaffolding visual-studio-2013

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

403使用s3cmd工具上传到Amazon S3的Paperclip附件的AccessDenied

我最近使用s3cmd 工具将本地存储中的一千个Paperlclip附件移到了Amazon S3 .您可以在此处找到有关我如何完成此操作的详细信息,但总而言之,我使用以下命令迁移所有旧附件.

s3cmd sync my-app/public/system/ s3://mybucket 
Run Code Online (Sandbox Code Playgroud)

我更新了我的代码库以使用新的S3存储桶,我已经测试了连接,一切正常.事实上,我可以通过我的应用程序将新附件上传到远程S3存储桶,查看/下载它们没问题.然而,似乎某个地方Paperclip和S3彼此不同步,我移动到我的s3桶的所有附件(在下图中模糊)返回403s,如果我尝试通过我访问它们应用.但是上传到同一个存储桶的新附件加载得很好.

迁移到s3的旧附件被拒绝

我有一个IAM组设置,具有以下配置:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::mybucket/*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

从我可以将新附件上传到S3的事实来看,我会说连接建立得很好.我相信我设置s3cmd通过不同的IAM用户帐户连接到我的存储桶,而不是通过我的应用程序访问存储桶的用户帐户.它可能是一个许可问题吗?如果是这样,我可以以任何方式更改上述权限以授予对这些文件的访问权限吗?

我正在使用aws-sdk将paperclip与S3集成.

编辑: 我认为这可能是一个所有权问题,因为我使用管理员密钥上传文件而不是我在我的应用程序中使用的文件.在配置它以使用应用程序使用的相同密钥后,我清除了存储桶并重新启动了s3cmd.然而,我遇到了同样的结果.

Edit2: 我可以通过进入我的应用程序的生产控制台并手动与我的存储桶交互来进一步验证我的权限和连接.一切都工作得很好,即我可以检索我的浏览器返回403s的文件.

> s3 = AWS::S3.new
=> <AWS::S3>
> bucket = s3.buckets['mybucket']
=> #<AWS::S3::Bucket:mybucket>  
> bucket.exists?
=> true
> image = bucket.objects["SomeFolder/SomeImage.jpg"]
=> <AWS::S3::S3Object:SomeFolder/SomeImage.jpg>
> puts image.read
=> ????^?D????????=m??????f ... machine code
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails amazon-s3 paperclip

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

Rails 3不会在显示方法的资源的公用文件夹中查找

在我的节目视图中,每当我尝试使用image_tag构建器显示图像时,rails都不会在我的节目视图中的公共文件夹中查找图像...

例如:

<%= image_tag "thumbnails/fish.jpg" %>
Run Code Online (Sandbox Code Playgroud)

会产生这个:

ActionController::RoutingError (No route matches [GET] "/uploads/thumbnails/fish.jpg"):
Run Code Online (Sandbox Code Playgroud)

我正在使用回形针Gem作为我的上传模型,出于安全原因,我将上传保存到与公用文件夹不同的文件夹中,是的,此显示视图确实发生在上传控制器中...

在我的上传模型中,我使用此行将上传保存到非公共文件夹:

has_attached_file :upload,  :path => ":rails_root/:class/:id/:basename.:extension",
                            :url => ":rails_root/:class  /:id/:basename.:extension"
Run Code Online (Sandbox Code Playgroud)

耙路线:

upload GET    /uploads/:id(.:format)                                                                 {:action=>"show", :controller=>"uploads"}
       PUT    /uploads/:id(.:format)                                                                 {:action=>"update", :controller=>"uploads"}
       DELETE /uploads/:id(.:format)                                                                 {:action=>"destroy", :controller=>"uploads"}
              /download/:id(.:format)                                                                {:controller=>"uploads", :action=>"download"}
Run Code Online (Sandbox Code Playgroud)

编辑 注意:如果我明确地创建一个img标记并将src指向我的图像,它在我的节目视图中工作正常,所以我不认为这是一个权限问题.

routing get paperclip ruby-on-rails-3

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