小编Pri*_*ain的帖子

命名路由_path vs _url

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

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

Ruby的Object#taint和Object#trust方法是什么?

我正在阅读文档中关于Ruby字符串方法的内容,并且涉及到各种方法

  • taint
  • trust
  • untaint
  • untrust

我不知道他们做了什么,我们使用它们的情况如何?有人用过它们吗?例子很好.

ruby

39
推荐指数
2
解决办法
6639
查看次数

ruby on rails find_or_initialize

有没有更好的方法在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)

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

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

文字和构造函数之间的差异?([] vs Array.new和{} vs Hash.new)

我很想知道[]和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)

我个人喜欢使用速记的[]和{},代码看起来很酷且可读.

任何其他指针它们之间有什么区别?场景背后发生了什么使它变得如此之好,并建议何时使用哪个?

我找到了这个链接,但希望获得更多信息.

干杯.

ruby ruby-on-rails

21
推荐指数
3
解决办法
3176
查看次数

rails如何实现before_filter?

我对rails如何实现过滤器感兴趣before_filter.

但在阅读完源代码后,我仍然感到困惑.

我注意到rails的框架维护了一个filter_chain,并在目标方法之前运行过滤器.

但是,我不明白一个重要的过程:rails如何捕获一个方法调用?

我的意思是,例如,我有一个类Dog,并设置before_filter方法树皮.

当我调用时dog.bark,rails应该以某种方式捕获此调用,并改为运行其修改的方法.

但是,我在源代码中找不到这样的代码.

任何人都可以告诉我这个想法或指出代码所在的位置吗?

ruby ruby-on-rails

20
推荐指数
1
解决办法
7459
查看次数

使用Silex框架在Twig模板中使用Javascript变量

我试图在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.不过,我不认为这样做.

javascript php jquery twig silex

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

rails列由多列组成

我有预算表与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的总和并对其进行一些计算.

sql activerecord ruby-on-rails

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

{"error":{"message":"缺少client_id参数.","type":"OAuthException","code":101}}

我跟随Ryan Bates Screen Cast#360 Facebook身份验证......

当我到达部分我点击链接登录到Facebook我得到一个

{
   "error": {
      "message": "Missing client_id parameter.",
      "type": "OAuthException",
      "code": 101
   }
}
Run Code Online (Sandbox Code Playgroud)

我尝试重新启动服务器,如前所述我拉我的头发试图弄清楚这一点

我在Facebook开发页面上的网址是正确的,我已经按照他的步骤进行了数百次

ruby ruby-on-rails

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

Spring RestTemplate和XMLStream与对象列表一起使用

我试图用来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)

spring xstream resttemplate

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

Rails 3:表单提交两次

我正在开发一个Rails应用程序,其中包含使用formtastic生成的表单.我在本地开发和测试 - 就是在localhost:3000 w/Ruby-1.9.2,Rails-3.0.1,jQuery和AJAX.

下面是我看到的问题的示例屏幕输出.我的表单在1秒内相互提交两次.我不明白为什么会这样.我看到这个问题与所有请求 - 包括GET.

  1. 在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 ="

  2. 在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 ="

所以我想知道我是否犯了一个基本的编程错误.如果是的话,那么请您提出一些我可以尝试的解决方案.

forms ruby-on-rails formtastic

7
推荐指数
2
解决办法
3263
查看次数