Rails提供命名路由.
可以使用path或url调用路由助手
例如来自docs:
# and provide these named routes
root_url # => 'http://www.example.com/'
root_path # => '/'
Run Code Online (Sandbox Code Playgroud)
坦率地说,我从来没有使用过*_url帮助器,我能够使用的东西*_path.
我有点困惑这两个不同助手的目的是什么?
他们如何彼此不同?
一些真实的例子,解释何时使用什么会很棒.
有没有更好的方法在Ruby on Rails中实现这一目标?
我正在搜索11个字段,所有字段都是必需的,如果没有找到则初始化它.
将添加更多必填字段.
这个查询对我来说很完美,但它看起来不是最好的方法.
find_or_initialize_by_make_and_country_and_engine_and_power_and_body_and_doors_and_fuel_and_cylinders_and_transmission_and_gears_and_wheels(model,country,engine,power,body, doors, fuel, cylinders, transmission,gears,wheels)
Run Code Online (Sandbox Code Playgroud) 我很想知道[]和Array.new以及{}和Hash.new之间的更多差异
我对它运行相同的基准测试,看起来短线是赢家
require 'benchmark'
many = 500000
Benchmark.bm do |b|
b.report("[] \t") {many.times { [].object_id }}
b.report("Array.new \t") { many.times { Array.new.object_id }}
b.report("{} \t") {many.times { {}.object_id }}
b.report("Hash.new\t") { many.times { Hash.new.object_id }}
end
user system total real
[] 0.080000 0.000000 0.080000 ( 0.079287)
Array.new 0.180000 0.000000 0.180000 ( 0.177105)
{} 0.080000 0.000000 0.080000 ( 0.079467)
Hash.new 0.260000 0.000000 0.260000 ( 0.264796)
Run Code Online (Sandbox Code Playgroud)
我个人喜欢使用速记的[]和{},代码看起来很酷且可读.
任何其他指针它们之间有什么区别?场景背后发生了什么使它变得如此之好,并建议何时使用哪个?
我找到了这个链接,但希望获得更多信息.
干杯.
我对rails如何实现过滤器感兴趣before_filter.
但在阅读完源代码后,我仍然感到困惑.
我注意到rails的框架维护了一个filter_chain,并在目标方法之前运行过滤器.
但是,我不明白一个重要的过程:rails如何捕获一个方法调用?
我的意思是,例如,我有一个类Dog,并设置before_filter方法树皮.
当我调用时dog.bark,rails应该以某种方式捕获此调用,并改为运行其修改的方法.
但是,我在源代码中找不到这样的代码.
任何人都可以告诉我这个想法或指出代码所在的位置吗?
我试图在Twig模板内部的一些Javascript中创建一个路由,并且需要使用JS变量作为路由参数的值.
例:
window.location.href = {{ path('post_display', { 'id': this_is_where_i_need_to_use_the_js_var }) }};
Run Code Online (Sandbox Code Playgroud)
我正在使用Silex框架,我不确定FOS JS是否适用于Silex.不过,我不认为这样做.
我有预算表与emptype_id和calendar_id actual_head,estimated_head
当我这样Budgets.sum(:actual_head ,:group=>"emptype_id,calendar_id") 做时,我 没有得到按上述两列分组的结果,但只有emptype_id
但是,当我检查日志时,sql查询是正确的
SELECT sum(`budgets`.actual_head) AS sum_actual_head, emptype_id,calendar_id AS emptype_id_calendar_id FROM `budgets` GROUP BY emptype_id,calendar_id
Run Code Online (Sandbox Code Playgroud)
有103行
我想遍历每个emptype_id和calendar_id以获得actual_head的总和并对其进行一些计算.
我跟随Ryan Bates Screen Cast#360 Facebook身份验证......
当我到达部分我点击链接登录到Facebook我得到一个
{
"error": {
"message": "Missing client_id parameter.",
"type": "OAuthException",
"code": 101
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试重新启动服务器,如前所述我拉我的头发试图弄清楚这一点
我在Facebook开发页面上的网址是正确的,我已经按照他的步骤进行了数百次
我试图用来Spring RestTemplate检索员工记录列表,例如:
public List<Employee> getEmployeesByFirstName(String firstName) {
return restTemplate.getForObject(employeeServiceUrl + "/firstname/{firstName}", List.class, firstName);
}
Run Code Online (Sandbox Code Playgroud)
问题是Web服务(被调用)返回以下XML格式:
<employees> <employee> .... </ employee> <employee> .... </ employee> </ employees>
所以当执行上面的方法时,我得到以下错误:
org.springframework.http.converter.HttpMessageNotReadableException: Could not read [interface java.util.List]; nested exception is org.springframework.oxm.UnmarshallingFailureException: XStream unmarshalling exception; nested exception is com.thoughtworks.xstream.mapper.CannotResolveClassException: **employees : employees**
Run Code Online (Sandbox Code Playgroud) 我正在开发一个Rails应用程序,其中包含使用formtastic生成的表单.我在本地开发和测试 - 就是在localhost:3000 w/Ruby-1.9.2,Rails-3.0.1,jQuery和AJAX.
下面是我看到的问题的示例屏幕输出.我的表单在1秒内相互提交两次.我不明白为什么会这样.我看到这个问题与所有请求 - 包括GET.
在2011-01-07 02:31:47开始POST"/ commerce/6/edit_balance"for 127.0.0.1 +0530由BusinessesController处理#edit_balance作为JS参数:{"utf8"=>"✓","authenticity_token"= > "zcWH08sV8kPbAYy7JQX64Cu2e1i/kEB1AB4x5a08CO8 ="
在2011-01-07 02:31:48开始POST"/ commerce/6/edit_balance"for 127.0.0.1 +0530由BusinessesController处理#edit_balance作为JS参数:{"utf8"=>"✓","authenticity_token"= > "zcWH08sV8kPbAYy7JQX64Cu2e1i/kEB1AB4x5a08CO8 ="
所以我想知道我是否犯了一个基本的编程错误.如果是的话,那么请您提出一些我可以尝试的解决方案.
ruby ×5
activerecord ×1
forms ×1
formtastic ×1
javascript ×1
jquery ×1
php ×1
resttemplate ×1
silex ×1
spring ×1
sql ×1
twig ×1
xstream ×1