小编von*_*rad的帖子

删除链接在Rails 3视图中发送"Get"而不是"Delete"

我正在使用Rails 3,并且有一个页面可以输出数据库中的帖子列表.我希望能够从链接中删除帖子.

下面的第二个例子有效,但第一个没有.谁知道为什么第一个不起作用?我的观点包含:

# this link sends a "GET" request which asks for the #show function  
<%= link_to 'Delete', post, :method => :delete %>

# this link sends the proper "DELETE" request which asks for the #destroy function
<%= button_to 'Delete', post, :method => :delete %>
Run Code Online (Sandbox Code Playgroud)

我的路线文件包含以下内容:

resources :posts 
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3

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

如何使用Devise根据角色重定向用户的主(根)路径?

我正在开发一个项目管理应用程序,在应用程序中,我有project_managers客户端.我正在使用Devise和CanCan进行身份验证/授权.

在登录后的什么时候我应该将用户重定向到他们自己的特定控制器/布局/视图?有没有一种方法来检查current_user.roleroutes.rb基础上,他们是否是一个项目经理或客户端,并设置了根(或重定向)?这是我在Devise某处可以做出的改变吗?

在此先感谢您的帮助! - 标记

authentication routes ruby-on-rails devise cancan

24
推荐指数
4
解决办法
2万
查看次数

哪个CouchDB或MongoDB适合我的需求?

在我工作的地方,我们使用Ruby on Rails来创建后端和前端应用程序.通常,这些应用程序与同一MySQL数据库交互.它适用于大多数数据,但我们有一种情况可以转移到NoSQL环境.

我们有客户,我们的客户拥有我们所谓的"库存" - 其中一个或多个.库存可以包含数千个商品.这是目前通过两个关系数据库表进行,inventoriesinventory_items.

当两个不同的库存具有不同的参数时,问题就开始了:

# Inventory item from inventory 1, televisions 
{
  inventory_id: 1
  sku: 12345
  name: Samsung LCD 40 inches
  model: 582903-4
  brand: Samsung
  screen_size: 40
  type: LCD
  price: 999.95
}

# Inventory item from inventory 2, accomodation
{
  inventory_id: 2
  sku: 48cab23fa
  name: New York Hilton
  accomodation_type: hotel
  star_rating: 5
  price_per_night: 395
}
Run Code Online (Sandbox Code Playgroud)

因为我们显然不能使用brandstar_rating作为列名inventory_items,我们的解决方案至今一直使用通用列名,例如text_a,text_b,float_a,int_a,等,并引入第三个表,inventory_schemas.表现在看起来像这样:

# …
Run Code Online (Sandbox Code Playgroud)

database couchdb mongodb nosql

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

推荐用于Ruby的双向加密宝石?

我需要一个Ruby的双向加密解决方案,如Blowfish,Rijndael(AES)或其他.然而,问题在于我找不到合适的宝石.我希望该库支持几种不同的加密算法,因此我可以比较每种加密算法的性能,以便在我的应用程序中实现最佳集成.我也希望它是开源的.

我遇到了Crypt,但它没有正确安装,并且看起来不像是在一段时间内更新了.EzCrypto也不会安装.我也看过ruby-aes,但这只支持Rijndael.

经过一些GitHub搜索,我找到了Encryptor,这似乎与我正在寻找的东西相似.但是,我很想知道我可能错过的任何宝石/图书馆.

提前致谢!

ruby encryption open-source

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

PostgreSQL查询不在生产中使用索引

我注意到一些奇怪/怪异的东西:

开发/生产中完全相同的查询不使用相同的查询路径.特别是,开发版本使用的是在生产中省略的索引(支持seqscan).

唯一真正的区别是数据集的生产量要大得多 - 索引大小为1034 MB,而生产中为29 MB.如果他们(或表)太大,PostgreSQL会不会使用索引吗?

编辑:EXPLAIN ANALYZE对于两个查询:

发展:

Limit  (cost=41638.15..41638.20 rows=20 width=154) (actual time=159.576..159.581 rows=20 loops=1)
  ->  Sort  (cost=41638.15..41675.10 rows=14779 width=154) (actual time=159.575..159.577 rows=20 loops=1)
        Sort Key: (sum(scenario_ad_group_performances.clicks))
        Sort Method: top-N heapsort  Memory: 35kB
        ->  GroupAggregate  (cost=0.00..41244.89 rows=14779 width=154) (actual time=0.040..151.535 rows=14197 loops=1)
              ->  Nested Loop Left Join  (cost=0.00..31843.75 rows=93800 width=154) (actual time=0.022..82.509 rows=50059 loops=1)
                    ->  Merge Left Join  (cost=0.00..4203.46 rows=14779 width=118) (actual time=0.017..27.103 rows=14197 loops=1)
                          Merge Cond: (scenario_ad_groups.id = scenario_ad_group_vendor_instances.ad_group_id)
                          ->  Index Scan using scenario_ad_groups_pkey …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql indexing

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

将变量与Ruby中的两个不同值进行比较

这更像是语义问题而不是其他问题.

我想检查一个变量是否是两个值之一.最简单的方法是:

if var == "foo" || var == "bar"
# or
if var == 3     || var == 5
Run Code Online (Sandbox Code Playgroud)

但这对我来说并不是很干涩.我知道我可以使用String.match(),但这对非字符串变量不起作用,速度慢三倍.

有没有更好的方法来检查两个值的变量?

ruby

4
推荐指数
2
解决办法
4419
查看次数

Rails控制器中的Process.fork

我们正在做一个新应用程序的原型设计,并注意到其中一个操作需要永远加载(80-120秒).由于很多处理不需要在页面加载时发生(我们可以通过Ajax稍后请求数据),我想到使用Process.fork允许页面立即返回,而处理仍然发生在"幕后".

我们正在将Apache与Passenger一起用于该应用程序.

有几件事:

  1. 我知道delayed_jobs,resque,BJ和其他后台工作宝石.我们使用dj,最终也会使用类似的东西.在我们进行原型设计时,这是一个权宜之计.

  2. 我不关心服务器性能.该应用程序在自己的服务器上运行,只有少数用户尝试使用它.

早期测试表明这种方法效果很好,但我想知道使用它是否是个好主意.它会变得可靠吗?如果用户导航到另一个页面或关闭标签/浏览器,分叉过程是否会继续?fork完成后,进程是否会自行终止?

ruby ruby-on-rails ruby-on-rails-3

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

MySQL加入可能不存在的记录

我正在尝试执行类似于此的查询:

SELECT <columns> FROM table1 
INNER JOIN table2 ON table1.id = table2.table1_id
INNER JOIN table3 ON table1.id = table3.table1_id
WHERE table3.column1 != 'foo' AND <other_conditions>
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

问题是 - 我希望查询返回结果,无论记录是否table3存在.也就是说 - 如果记录table3存在,我想检查该记录是否具有某个列值.如果记录table3 存在,我希望查询假设条件为TRUE.

有什么指针吗?

mysql sql join

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