小编Yo *_*dke的帖子

没有秘密选项提供给Rack :: Session :: Cookie警告?

我在Fedora 17下运行Rails 3.2.3,Ruby 1.9.当我运行时rails s,我收到此警告,我该如何解决?

安全警告:Rack :: Session :: Cookie没有提供任何秘密选项.这构成了安全威胁.强烈建议您提供密码以防止可能来自精心制作的Cookie的漏洞利用.在将来的Rack版本中不支持此功能,未来版本甚至会使您现有的用户cookie无效.

ruby-on-rails ruby-on-rails-3.2

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

Git-Repo在所有已提交文件中搜索String(未知分支和提交)

我在我的git repo中有一段代码而不是我当前的分支,我不确定哪个提交和哪个分支.我怎样才能搜索到目前为止为特定字符串提交的所有文件(之后显示该行代码的周围)?

git

21
推荐指数
3
解决办法
1万
查看次数

松散的索引搜索postgres有条件

对于产品表上的某些过滤子条件,我想找出那些过滤产品的不同类别(数百万种产品).

这样做的明确方法

SELECT DISTINCT category_id FROM "products" WHERE _conditions_
Run Code Online (Sandbox Code Playgroud)

当涉及很多行时,需要很长时间才能完成(GROUP BY相反,它并没有真正改变太多)

根据https://wiki.postgresql.org/wiki/Loose_indexscan,当不同的col上只有相对少量的不同值时(就像这里有~30个类别的情况一样),条件

SELECT DISTINCT category_id FROM "products"
Run Code Online (Sandbox Code Playgroud)

可以重新表述为递归CTE

WITH RECURSIVE t AS (
   SELECT MIN(category_id) AS category_id FROM "products"
   UNION ALL
   SELECT (SELECT MIN(category_id) FROM "products" WHERE category_id > t.category_id)
   FROM t WHERE t.category_id IS NOT NULL
   )
SELECT category_id FROM t WHERE category_id IS NOT NULL
UNION ALL
SELECT NULL WHERE EXISTS(SELECT 1 FROM "products" WHERE category_id IS NULL);
Run Code Online (Sandbox Code Playgroud)

这实际上在我的用例(milisecons而不是秒)中表现得更好.但它没有条件.

如何WHERE _conditions_正确地将' '部分添加到递归CTE?

postgresql

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

如何在Rails ActiveRecord中正确分配has_many/belongs_to关系?

我有一个带有文章和作者模型的rails应用程序.如果我有作者和帖子并希望表明作者应该是文章的所有者,或者文章属于作者,那么最佳做法是什么?特别是:

如果我设置它会有所作为吗?

my_article.author_id = author_one.id
Run Code Online (Sandbox Code Playgroud)

或者如果我这样做

author_one << my_article
Run Code Online (Sandbox Code Playgroud)

使用的关联是

  • 作者has_many文章
  • 文章所属_to作者

顺便说一下,如果出现类似的问题,最好的方法是什么呢?

ruby activerecord ruby-on-rails

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

Rails ActiveRecord数据库只有一行

有没有办法使数据库只允许一行(例如,对于站点范围的设置)?

mysql ruby-on-rails rails-activerecord

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

在Rails命名空间控制器中调用form_for时无法解决"ArgumentError:Missing block"

在应用程序的管理面板中,应该引入新表单.我想使用2.3依赖RoR指南中描述的记录识别,但如果我说的话

form_for(@product)
Run Code Online (Sandbox Code Playgroud)

要么

form_for [:backend, @product]
Run Code Online (Sandbox Code Playgroud)

它扔了一个ArgumentError: Missing block.这是用于后端 - 新功能,控制器在其中controller/backend/product_controller定义

 def new
   @product = Product.new
end
Run Code Online (Sandbox Code Playgroud)

我做错了什么?为什么这不起作用?

ruby-on-rails actionview ruby-on-rails-3.2

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

Ruby on Rails查看通过渲染插入js.erb文件

为了包含我在某些页面上只需要的一段javascript,我放了

 = javascript_tag do
   = render "inserts_js_enhanced_element.js.erb"
Run Code Online (Sandbox Code Playgroud)

在我的haml档案中.现在我在测试中收到警告:

DEPRECATION WARNING: Passing a template handler in the template name is 
deprecated. You  can simply remove the handler name or pass render
:handlers => [:erb] instead.`
Run Code Online (Sandbox Code Playgroud)

但是,当我将线路更改为

   = render "inserts_js_enhanced_element.js", :handlers => [:erb]
Run Code Online (Sandbox Code Playgroud)

无论如何,我得到一个新的警告,说

 DEPRECATION WARNING: Passing the format in the template name is 
 deprecated. Please pass render with :formats => [:js] instead.
Run Code Online (Sandbox Code Playgroud)

如果我确实改变了

 = render "inserts_js_enhanced_element", :handlers => [:erb], :formats => [:js]
Run Code Online (Sandbox Code Playgroud)

它给了我错误

     ActionView::Template::Error:
   Missing partial application/inserts_js_enhanced_element with {:handlers=>[:haml, …
Run Code Online (Sandbox Code Playgroud)

javascript ruby ruby-on-rails actionview

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

One-liner在Ruby on Rails中搜索,以改变数据库中的属性

在Ruby on Rails中,对于ActiveRecord class MySettings,是否有更优雅的选择

s = MySettings.last
s.do_updates = true
s.save
Run Code Online (Sandbox Code Playgroud)

一行?

ruby ruby-on-rails rails-activerecord

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

html或json的相同控制器操作中的不同代码

我有一个控制器动作,以两种格式响应相同的根--html和json.但是为html响应运行的代码与json响应的代码完全不同.现在我有类似的东西

def index
  result_html = ...
  result_json = ...
  respond_to |format|
     format.html
     format.json { result = result_json.limit(10) }
  end
end
Run Code Online (Sandbox Code Playgroud)

而且我想拥有它

 def index.html
    result_html ...
 end
Run Code Online (Sandbox Code Playgroud)

def index.json
  result_json ...
end
Run Code Online (Sandbox Code Playgroud)

组织它的最佳方式是什么?

ruby-on-rails actioncontroller

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