繁体   English   中英

Ruby on Rails中方法的API

[英]API for methods on Ruby on Rails

我正在做Hartl的教程。 我经常不知道本教程中提到的某些方法是在Rails还是本教程的代码中定义的。 我在学习Rails时遇到问题查找方法。 有谁知道我在哪里可以找到API:

edit_account_activation_url(@user.activation_token, email: @user.email

清单11.13中? 有人可以建议我一般如何找到方法的API吗?

它是url助手,它是从routes.rb自动创建的。 您可以在Rails指南中找到更多信息

在路由中resources :account_activations, only: [:edit]resources :account_activations, only: [:edit]根据url生成规则,它生成1条路由:

http://www.example.com/account_activations/:id/edit

助手edit_account_activation_url以id作为第一个参数,在您的情况下为@user.activation_token 作为第二个参数,它使用查询哈希(我们可以省略{}作为最后一个哈希参数)-它是{ email: @user.email } 那如何运作

您可以通过阅读指南和教程来解决“找不到方法的API”的问题

有人可以建议我一般如何找到方法的API吗?

好问题。 我用Pry

[3] pry(main)> show-source app.users_path

From: /home/sergio/.gem/ruby/2.4.4/gems/actionpack-4.2.11/lib/action_dispatch/routing/route_set.rb @ line 342:
Owner: #<Module:0x0000563dd616fc28>
Visibility: public
Number of lines: 5

define_method(name) do |*args|
  options = nil
  options = args.pop if args.last.is_a? Hash
  helper.call self, args, options
end

在这种情况下,它比@Vasilisa提到的路由指南的帮助要少得多。 但是至少它给了你一个提示。 通常它非常有用。 尤其是当您要处理大量使用继承/混合的gem /库时,您永远不确定在这里调用的是30种call实现中的哪一种。 这种方法显示了确切的位置和源代码。

APIdock是一个很好的信息来源 该站点允许您针对Ruby或Rails搜索API信息。 有用的是,用户将在API上添加有关该方法的其他代码段或注释。

Just Rails API的另一个来源是Ruby on Rails API 这通常会为您提供最新的API信息。 相对而言,APIdock网站将在页面顶部的版本时间线上显示不同的Rails发行版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM