class Api::StoresController < ApplicationController
respond_to :json
def index
@stores = Store.all(:include => :products)
respond_with @stores
end
end
Run Code Online (Sandbox Code Playgroud)
仅返回没有产品的商店
Store.find(:all).to_json(:include => :products)
Run Code Online (Sandbox Code Playgroud)
该关联已经过测试,我可以看到控制台中的嵌套产品,例如,
Store.first.products
Run Code Online (Sandbox Code Playgroud)
将他们的产品包含在MongoMapper中的正确方法是什么?
这是我的模特:
class Store
include MongoMapper::Document
many :products, :foreign_key => :store_ids
end
class Product
include MongoMapper::Document
key :store_ids, Array, :typecast => 'ObjectId'
many :stores, :in => :store_ids
end
Run Code Online (Sandbox Code Playgroud)
UPDATE
在尝试Scott的建议时,我在Store模型中添加了以下内容:
def self.all_including_nested
stores = []
Store.all.each do |store|
stores << store.to_hash
end
end
def to_hash
keys = self.key_names
hash = {}
keys.each{|k| hash[k] = self[k]}
hash[:products] = …Run Code Online (Sandbox Code Playgroud) 当提交为空时,如何查看必填字段上方显示的"请填写此字段"消息?
现在我的黄瓜场景似乎完全忽略了空场,成功提交了表格.
(我正在验证字段的存在,并且在手动提交时,表单会显示消息)
我正在开发各种微型论坛,由特殊用户发布一个快速(接近推文大小)的主题消息,订阅者可以使用他们自己的大小相同的消息进行响应.直截了当,没有"挖掘"或任何形式的投票,只是按时间顺序排列每个主题消息的响应.但预计会有很高的流量.
我们希望根据他们使用的响应动态标记主题消息,使用0到10的等级.
谷歌搜索趋势算法和开源社区应用程序示例已有一段时间了,到目前为止已经收集了两个有趣的参考资料,我还没有完全理解:
从第一次开始,我理解需要检查活动的斜率,并平衡两个项目之间的重量,这两个项目的活动规模差别很大.但是,我如何比较许多项目,随着时间的推移迅速增加?然后,如何将"嗡嗡声等级"中的项目从0分到10分?
第二个参考是令人着迷的,但在这一点上我的头脑.从第一遍开始,我了解到需要保持内存使用稳定,同时保留计数器并在必要时存储对项目的引用.但我还没有为我的具体用例找到合适的算法.
值得注意的是,我来自非计算机科学和非统计学背景.请耐心等待:)任何帮助和代码示例(特别是在Ruby中)将不胜感激.
以下formtastic表单复选框字段集:
<%= semantic_form_for @store do |f| %>
<%= f.inputs do %>
<%= f.input :services, :as => :check_boxes, :collection => Service.all %>
<% end -%>
<% end -%>
Run Code Online (Sandbox Code Playgroud)
发送错误的参数:使用Capybara进行Cucumber测试的服务,使测试失败,而实际的应用程序发送正确的应用程序,处理正常:
#cucumber steps using the boiler_plate capybara web_steps.rb:
Given a "Mail Order" service
...(steps for rest of the form)...
When I check "Mail Order"
And I press "Create Store"
Then I should see "Store was successfully created."
And I should see "Mail Order"
#params sent by cucumber
"store"=>{"services"=>["[\"4d8247ed7f5bfd2275000004\"]"]
#params sent by app on …Run Code Online (Sandbox Code Playgroud) 是否有适用于 iOS 应用程序的类似 TinyMCE 的小部件的实现(开源或专有)?
如果没有,是否有任何参考资料、教程、食谱等,不知道如何自己动手?
在如何使用Cucumber/Capybara在页面上找到图像的解决方案的评论中,有人问:
我似乎无法想象如何使用Dragonfly生成的URL.它们看起来像这样:/media/BAh_some_long_string_AwIw/12_11_52_810_5x5.jpg?s=7e360000,其中5x5.jpg是我的文件名.我尝试过类似:// img [@src ="/ media//#{image}?s =*"]但它不起作用.有什么提示吗?- Ramon Tayag 2月25日凌晨 4点18分
我有一个类似的问题,只是更糟糕 - 在我的情况下,生成的图像路径甚至不包括(jpg | png | gif)文件名,它们只有这些非常长的ID:
<img src="/media/BAhbB1sHOgZmSSIdNGQ4MTEyOGU3ZjViZmQwZTQ4MDAwMDAyBjoGRVRbCDoGcDoKdGh1bWJJIg0yMDB4MjAwIwY7BlQ" />
Run Code Online (Sandbox Code Playgroud)
(使用蜻蜓和mongo/gridfs)
这些路径渲染得很好,但我无法弄清楚如何在Cucumber/Capybara步骤中找到它们:P
有任何想法吗?我查看了Dragonfly的功能,但是他们只测试了图像本身的渲染,而没有检测到它在html页面中的存在.
使用以下Store和Service模型,使用MongoMapper进行管理:
class Store
include MongoMapper::Document
key :service_ids, Array, :typecast => 'ObjectId'
many :services, :in => :service_ids
end
class Service
include MongoMapper::Document
key :name, String
many :stores, :foreign_key => :service_ids
end
Run Code Online (Sandbox Code Playgroud)
我有这个表格,用Formtastic完成:
<%= semantic_form_for @store, :url => admin_store_path(@store), :method => :put do |form| %>
<%= form.input :service_ids, :label => "Select Store Services",
:as => :check_boxes,
:collection => Service.all %>
<% end -%>
Run Code Online (Sandbox Code Playgroud)
控制器使用Inherited Resources,编辑操作是隐式的.
使用已与之关联的服务编辑@store时,后者的复选框不会显示为已选中.
Formtastic的README警告它不正式支持MongoMapper,但它也说人们已经成功地使用了两者,我在网上看到了一些这样的例子.
我怀疑Inherited Resources也不支持它,我从Devise + Simple Form看到的,都来自同一作者,不支持MM.他们正努力在他们的宝石中使用ORM适配器,但尚未准备好AFAIK.
我已经遇到了问题,我正在重写更新操作以使其工作:
def update
store = Store.find(params[:id])
if …Run Code Online (Sandbox Code Playgroud) capybara ×3
cucumber ×3
formtastic ×2
mongomapper ×2
algorithm ×1
cocoa-touch ×1
html5 ×1
image-upload ×1
ios ×1
json ×1
objective-c ×1
responders ×1
ruby ×1
statistics ×1
wysiwyg ×1