我收到insert failed: Method not found日志消息,它可能是这些线程中描述的结果:
但是,我没有看到如何.让我展示希望能够更清楚地解释的代码.我正在使用Coffeescript:
if Meteor.isClient
@VINs = new Meteor.Collection("vins")
scoped_vins = @VINs
Template.vins.events =
"click .icon-plus-sign": ->
console.log "this is #{this}"
realVIN = $("#your-vin").val().replace /\D/g, ''
console.log "user id is: #{Meteor.userId()} vin is #{parseInt(realVIN)}"
VINs.insert number: parseInt(realVIN), owner: Meteor.userId() if Meteor.userId()
$("#your-vin").val('')
else
@VINs = new Meteor.Collection("vins")
Run Code Online (Sandbox Code Playgroud)
我对Meteor完全是一个n00b,但我从上面提到的线程中收集的是该集合必须在客户端和服务器上可用.这不是我所做的,还是我发展咖啡失明?
谢谢!
好吧,仍然在我的玩具应用程序中,我想找出一组车主的里程表的平均里程数.这在客户端非常简单,但不能扩展.对?但是在服务器上,我并没有完全看到如何实现它.
问题:
@HubertOG的建议是使用Meteor.call,这是有意义的,我这样做:
# Client side
Template.mileage.average_miles = ->
answer = null
Meteor.call "average_mileage", (error, result) ->
console.log "got average mileage result #{result}"
answer = result
console.log "but wait, answer = #{answer}"
answer
# Server side
Meteor.methods average_mileage: ->
console.log "server mileage called"
total = count = 0
r = Mileage.find({}).forEach (mileage) ->
total += mileage.mileage
count += 1
console.log "server about to return #{total / count}"
total / count
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但它并不是因为尽可能接近Meteor.call是异步调用,并且answer将始终为null返回.处理服务器上的东西似乎是一个常见的用例,我必须忽略一些东西.那会是什么?
谢谢!
我已将整个堆栈从基于Rails 3.0的项目升级到3.1.我有规格通过,但我的功能现在有点挑剔.我目前面临的问题是这一步:
Then /^I should see (\d+) menu item(?:s)? within "([^"]*)"$/ do |count, selector|
page.find(:css, selector, :count => count.to_i)
end
Run Code Online (Sandbox Code Playgroud)
在功能本身,我可能会说:
Then I should see 5 menu items within "tr#menu_item_row"
Run Code Online (Sandbox Code Playgroud)
我收到的消息是:
Then I should see 5 menu items within "tr#menu_item_row" # features/step_definitions/admin_menu_steps.rb:1
Ambiguous match, found 5 elements matching css "tr#menu_item_row" (Capybara::Ambiguous)
./features/step_definitions/admin_menu_steps.rb:2:in `/^I should see (\d+) menu item(?:s)? within "([^"]*)"$/'
features/admin_menu.feature:30:in `Then I should see 5 menu items within "tr#menu_item_row"'
Run Code Online (Sandbox Code Playgroud)
据我所知,5个元素与实际找到的5个元素相匹配.我是否将此代码编写错误或是否有重大变更?谢谢!
我在Rails 3.0应用程序中指定了一个范围,如下所示:
class DrawingList < ActiveRecord::Base
scope :active_drawings, where('start_date <= ? AND end_date >= ?', Date.today, Date.today)
end
Run Code Online (Sandbox Code Playgroud)
在我的规范中,我想做:
before do
@list = DrawingList.create #things that include begin and end dates
end
it "doesn't find an active drawing if they are out of range" do
pending "really need to figure out how to work timecop in the presence of scopes"
Timecop.travel(2.days)
puts Date.today.to_s
DrawingList.active_drawings.first.should be_nil
end
Run Code Online (Sandbox Code Playgroud)
正如您可能想象的那样,看跌期权真的表明Date.today是两天.但是,范围是在不同的上下文中进行评估的,因此它使用旧的"今天".今天如何在Timecop可以影响的上下文中进行评估.
谢谢!
我有一个bbcode - > html转换器,它响应textarea中的change事件.目前,这是使用一系列正则表达式完成的,并且存在许多病理情况.我一直想在这个语法上磨铅笔,但不想进入牦牛剃须.但是......最近我开始意识到pegjs,这似乎是PEG解析器生成的一个非常完整的实现.我已经指定了大部分语法,但现在我想知道这是否适合使用完整的解析器.
我的具体问题是:
由于我的应用程序依赖于将我能够转换为HTML并将其余内容保留为原始文本,因此使用可能在语法错误上失败的解析器实现bbcode是否有意义?例如:[url=/foo/bar]click me![/url]一旦输入关闭标记上的结束括号,肯定会成功.但是在此期间用户会看到什么?使用正则表达式,我可以忽略不匹配的东西,并将其视为普通文本以用于预览目的.使用正式语法,我不知道这是否可行,因为我依赖于从解析树创建HTML以及解析失败的原因是什么?
我不清楚应该在哪里进行转换.在正式的基于lex/yacc的解析器中,我将有头文件和符号表示节点类型.在pegjs中,我得到了带有节点文本的嵌套数组.我可以将翻译后的代码作为pegjs生成的解析器的一个动作发出,但是它似乎是一种将解析器和发射器组合在一起的代码气味.但是,如果我打电话PEG.parse.parse(),我会收到这样的话:
Run Code Online (Sandbox Code Playgroud)[
[
"[",
"img",
"",
[
"/",
"f",
"o",
"o",
"/",
"b",
"a",
"r"
],
"",
"]"
],
[
"[/",
"img",
"]"
]
]
给出如下语法:
document
= (open_tag / close_tag / new_line / text)*
open_tag
= ("[" tag_name "="? tag_data? tag_attributes? "]")
close_tag
= ("[/" tag_name "]")
text
= non_tag+
non_tag
= [\n\[\]]
new_line
= ("\r\n" / "\n")
Run Code Online (Sandbox Code Playgroud)
当然,我正在缩写语法,但你明白了.所以,如果你注意到,数组数组中没有上下文信息告诉我我有什么样的节点,即使解析器已经完成了这个,我还是要再次进行字符串比较.我希望在解析期间可以定义回调并使用操作来运行它们,但是网上很少有关于如何做到这一点的信息.
我吠叫错了树吗?我应该回到正则表达式扫描并忘记解析吗?
谢谢
我有一个带有FactoryGirl和rSpec的新Rails 4项目.在我的spec_helper.rb身上:
# lots of stuff
RSpec.configure do |config|
# more stuff
config.include FactoryGirl::Syntax::Methods
end
Run Code Online (Sandbox Code Playgroud)
我还删除了rspec/autorun此文件中的require.
一个简单的规范:
require 'spec_helper'
describe User do
build(:user)
end
Run Code Online (Sandbox Code Playgroud)
有一个简单的工厂:
FactoryGirl.define do
factory :user do
email "somename@someplace.com"
end
end
Run Code Online (Sandbox Code Playgroud)
失败,显示以下消息.
`block in <top (required)>': undefined method `build' for #<Class:0x007fd46d0e3848> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
但是,如果我build在规范中明确限定它通过:
require 'spec_helper'
describe User do
FactoryGirl.build(:user)
end
Run Code Online (Sandbox Code Playgroud)
我能做什么,所以我不必FactoryGirl每次都添加?
我喜欢使用Haml助手,但多年来事情发生了一些变化.旧方法只是连接到缓冲区.这就是我所拥有的:
def confirmation_table(field)
# Be certain that if the user is logged in, his/her email and name show
if field.respond_to? :user
haml_tag('tr') {
haml_tag('th', 'Email:')
haml_tag('td', field.user.email)
}
haml_tag('tr') {
haml_tag('th', 'Name:')
haml_tag('td', field.user.full_name)
}
else
haml_tag('tr') {
haml_tag('th', 'User Information:')
haml_tag('td', 'Not specified.')
}
end
field.class.columns.collect{|col| col.name}.reject{|col|
col =~ /_at$/ ||
col =~ /_on$/ ||
col =~ /_id$/ ||
col == 'id'}.each do |col|
haml_tag('tr') {
haml_tag('th', ActiveSupport::Inflector::humanize(col))
haml_tag('td', typeize(field, col))
}
end
end
Run Code Online (Sandbox Code Playgroud)
当然,这可以在我看来简单地访问:
- confirmation_table(@f)
Run Code Online (Sandbox Code Playgroud)
但是,对我来说更有意义的是返回一个字符串.我看不出如何haml_capture …
我正在使用Velocity与mike:mocha框架和chai断言.一切都很好,但是当我需要进行抄袭,嘲笑和间谍活动时,我遇到了一些障碍.这些不是迈克的主要特征:摩卡或柴,所以我找到了实际的流星:柴,应该/可能有间谍.
我第一次发现这是否属实是写下面的代码:
it 'calls update when both documents are present but different', ->
spies.create('log', console, 'log')
Run Code Online (Sandbox Code Playgroud)
这给了我:
ReferenceError: spies is not defined
at packages/velocity:test-proxy/tests/mocha/server/charger_server_doc_spec.coffee:88:9
at wrappedFunc (packages/mike:mocha/server.js:200:1)
at runWithEnvironment (packages/mike:mocha/server.js:156:1)
Run Code Online (Sandbox Code Playgroud)
这对我来说意味着我误解了chai提供的实际流程:然而,我在第一个例子中展示的代码是从README中逐字复制的.
问题:有关使其运行的任何提示吗?这是一个加载订单问题吗?Github上的代码显示间谍等在此包中实现.所以我有点卡住了.
谢谢!
我有一个常见的SQL任务,但无法找到解决方案的明确路径.我有一个表,downloads用columns,download_date,image_file_id,credits.我最后想要的是细节,加上credits每天结束时的小计.例如
2010-10-06 123456 5
2010-10-06 234567 20
25
2010-10-07 234678 15
etc.
Run Code Online (Sandbox Code Playgroud)
我可以使用SUM()和GROUP BY获取每日小计,但是会喜欢一种方便的方法来获得包含正确顺序的结果集,因此我不必在客户端代码中再次扫描数据以安排带有详细信息的小计行.
我对一个相当常见的问题略有不同:SEO友好的URL.我有一个PagesController,所以我的网址当前就像(使用restful routing):
/页/部分内容,标题
这很好用,但页面有层次结构,所以我需要以下内容:
/ some-content-title路由到/ pages/some-content-title
我也可以使用以下方法实现:
match '*a', :to => 'errors#routing'
Run Code Online (Sandbox Code Playgroud)
在我的routes.rb中并将其捕获在ErrorsController中:
class ErrorsController < ApplicationController
def routing
Rails.logger.debug "routing error caught looking up #{params[:a]}"
if p = Page.find_by_slug(params[:a])
redirect_to(:controller => 'pages', :action => 'show', :id => p)
return
end
render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false
end
end
Run Code Online (Sandbox Code Playgroud)
我的问题来自于URL的"页面/"部分所需的SEO消除.SEO-dude想要什么(这里是一个例子是关键):
/ insurance =>:controller =>'pages',:id =>'insurance'#,但地址栏中的url是/ insurance
/ insurance/car:controller =>'pages',:category =>'insurance',:id =>'car'#,但地址栏中的url是/ insurance/car
是否有一种通用的方式让他获得他的谷歌爱情并让我保持路线健全?
谢谢!