我对Rails很陌生并希望改进我的工作流程。我想知道在哪里可以查找一般轨道功能的可能功能参数。 E.g:
我想使用render
功能。我能通过哪些论据?
为了回答这个问题,我去了api.rubyonrails.org。但这只告诉我函数签名:
render(*args, &block)
我现在不比以前更多。
为了获得更多信息,我通读了关于布局和渲染的Ruby on Rails指南(这很棒)。但即使我找到了我想要的东西,也不能快速查找可能的选项。我正在寻找更简洁的东西。
我怎么知道我可以将:partial
或:layout
这样的内容传递给该函数?
查看实际的源代码是另一种选择。但那也不是很方便。
这个render
函数只是一个例子。在我想要使用某个函数的几个地方发生了这种情况,并且找不到它实际上能够做什么的良好文档。
答案 0 :(得分:0)
您可以将要呈现的部分名称作为参数传递,如下所示:
<%= render :partial => 'partial_name' %>
或者你可以传递如下的参数:
<%= render :partial => 'users', :collection => @users, :locals => {:size => 30} %>
希望这有帮助。
答案 1 :(得分:0)
我们可以使用Ruby的反射功能来获取方法的参数列表(预期参数):
AbstractController::Rendering.instance_method(:render).parameters
# Output: [[:rest, :args], [:block, :block]]
输出由符号对组成。在每对中,第一个符号告诉我们参数的类型(必需,可选,休息,块),第二个符号显示参数的名称。
至于参数类型:
有关参数类型的更多信息,请参见this post at the Zen Ruby blog。
答案 2 :(得分:0)
渲染部分,你可以传递
<%= render :partial => 'client', :collection => @users, :as => :client, :locals => {:optional => true} %>
其中:
:partial
您可以将名称或路由传递给部分,例如“user”或“folder / user”
:collection
例如,如果您在@user中有一个用户列表,那么使用此参数时,将重复此部分,因为该集合中有许多用户。
:as
如果你传递一个集合,如果模型是User,则自动将用户“user”作为局部变量,但如果你需要另一个局部变量作为示例中的部分客户端,则传递该参数的每个部分的名称。采集。所以你可以说client.name而不是user.name
:locals
如果你想将局部变量传递给局部变量,就像你在部分if optional
内进行验证那么你以这种方式传递值,正如你在{}
看到的那样,你可以传递使用逗号的不止一个。