收听文件夹或文件以查看是否已保存或是否添加了新文件的最佳方法是什么?
在我的应用程序中,我想在登录时提供类似屏幕的仪表板,以便了解正在发生的事情.我有大约4个模型需要从中收集数据并按顺序排序.我的问题是知道的动作,这样我就可以得到每个模型的特定字段.
这里有一些关于如何去做的想法,但我觉得它们不是最好的和不完整的.
我有一个单独的模型,其中包含:model,associated_id,action."Post,1,created"就是一个例子.
有4个不同的数组,并通过说明将它们与正确的顺序合并created_at.
最好的方法是什么?我在下面提供了一个例子:

我试图通过使用MongoMapper的类继承来获得更好的组织结果,但是遇到了一些麻烦.
class Item
include MongoMapper::Document
key :name, String
end
class Picture < Item
key :url, String
end
class Video < Item
key :length, Integer
end
Run Code Online (Sandbox Code Playgroud)
当我运行以下命令时,它们并没有完全返回我期望的内容.
>> Item.all
=> [#<Item name: "Testing", created_at: Sun, 03 Jan 2010 20:02:48 PST -08:00, updated_at: Mon, 04 Jan 2010 13:01:31 PST -08:00, _id: 4b416868010e2a04d0000002, views: 0, user_id: 4b416844010e2a04d0000001, description: "lorem?">]
>> Video.all
=> [#<Video name: "Testing", created_at: Sun, 03 Jan 2010 20:02:48 PST -08:00, updated_at: Mon, 04 Jan 2010 13:01:31 PST -08:00, _id: 4b416868010e2a04d0000002, …Run Code Online (Sandbox Code Playgroud) 我正在使用Rails 3 beta 4,出于某种原因,我有每个例外需要15-30秒才能显示.这是我的踪迹:
Started GET "/something/something/approvals/new" for 127.0.0.1 at Thu Jun 24 21:17:12 -0400 2010
SQL (1.8ms) describe `approvals_users`
SQL (24.6ms) describe `clients_users`
SQL (1.4ms) describe `agencies_users`
SQL (1.2ms) describe `clients_users`
SQL (1.2ms) describe `approvals_users`
SQL (1.7ms) describe `permissions_users`
Processing by ApprovalsController#new as HTML
Parameters: {"project_id"=>"tricked", "client_id"=>"deez-nutz"}
SQL (1.4ms) describe `agencies_users`
Agency Load (0.4ms) SELECT `agencies`.* FROM `agencies` WHERE (`agencies`.`subdomain` = 'subdomain') LIMIT 1
Plan Load (0.3ms) SELECT `plans`.* FROM `plans` WHERE (`plans`.`id` = 3) LIMIT 1
User Load …Run Code Online (Sandbox Code Playgroud) 我有一个正在侦听端口9000的Rails应用程序服务器,并且正在通过haproxy进行调用.来自该服务器的所有重定向都将通过端口9000重定向,当它们应该在端口80上发送回来时.
我正在使用haproxy + nginx +乘客的组合.有没有办法确保所有重定向都通过端口80发送,无论实际服务器正在侦听哪个端口?
我不在乎它的haproxy,nginx,Passenger或Rails是否会发生变化.除非另有说明,否则我只需要确保大多数请求都被发送回端口80.
谢谢!
我试图弄清楚如何为我正在处理的网站布置我的数据库.这是我的模特:
class User
include MongoMapper::Document
// keys here
many :items
many :likes
end
class Item
include MongoMapper::Document
key :name, String, :required => true
many :likes
end
class Like
include MongoMapper::EmbeddedDocument
key :user_id, String, :required => true
end
Run Code Online (Sandbox Code Playgroud)
我相信Like应该嵌入某个地方,但我很难选择一个,因为我想要摆脱它的功能.
user = User.first
user.likes // should print out all the Items he liked
item = Item.first
item.likes // so I can count how many people like that item
Run Code Online (Sandbox Code Playgroud)
虽然使用EmbeddedDocument时会出现问题,但是您会丢失find其他有用的方法,并且不能将它嵌入到两个模型中.所以只有它Item,我需要运行它(但不能):
item = Item.first
item.likes.find_by_user_id(User.first._id)
Run Code Online (Sandbox Code Playgroud)
find_by_user_id将抛出未定义的方法.所以如果我把它嵌入我的中User …
我有一个在端口8080上运行的Rails应用程序,我需要欺骗它认为它在端口80上运行.
我在端口上运行Varnish 80并将请求转发到端口上的nginx 8080,但是当用户尝试使用OmniAuth登录并且Devise gem生成一个URL以重定向回服务器时,它认为它在端口8080上然后用户将看到.
有没有办法欺骗Rails应用程序将端口硬编码为80(我认为这是一个不好的做法),或者让nginx转发请求,就好像它在端口80上运行一样?
由于我没有在Rails应用程序上运行nginx代理,所以我想不出一种欺骗端口的方法.
有没有人之前遇到过这个问题,如果有的话需要什么样的配置才能修复它?
提前致谢!
编辑:nginx和Varnish都在同一台服务器上运行.
现在我正在尝试调用我的模型,并将其结果吐出为json/xml格式.我唯一的问题是,我的数据库关联没有被加载或查询.
通常,我可以运行它
@campaign = Campaign.find(:all)
然后通过调用@campaign[0].hits来获取点击次数has_many :hits.
但是如果你调试输出,它只调用表上的列.你会如何将它与你的查询放在一起?
例如:
<campaign>
<category>website</category>
<created-at type="timestamp">2009-01-24 14:49:02 -0800</created-at>
<end-at type="date">2009-01-24</end-at>
<id type="integer">14</id>
<is-watched type="integer">1</is-watched>
<name>Lets</name>
<slug>c5334415da5c89384e42ce6d72609dda</slug>
<start-at type="date">2009-01-24</start-at>
<user-id type="integer">5</user-id>
</campaign>
然后让它改为添加另一列,但是有点击次数.
<campaign>
<category>website</category>
<created-at type="timestamp">2009-01-24 14:49:02 -0800</created-at>
<end-at type="date">2009-01-24</end-at>
<id type="integer">14</id>
<is-watched type="integer">1</is-watched>
<name>Lets</name>
<slug>c5334415da5c89384e42ce6d72609dda</slug>
<start-at type="date">2009-01-24</start-at>
<user-id type="integer">5</user-id>
<hits type="integer">123412</hits>
</campaign>
我的视图控制器中有一些方法可以加载以备将来的操作,我在一个方法中调用它们,即:
- (void) updateSongInformation {
artistName.text = @"Testing";
[self setupEmail];
[self checkStatus];
}
Run Code Online (Sandbox Code Playgroud)
如果我取出最后两行,UILabel会立即更新.有没有办法在后台运行最后2个方法,这样用户体验不会延迟?