Ruby on rails Rails部分资源
我的应用程序中有一个名为练习的资源。目前,我有一个名为_exercise.html.erb的部分代码,用于渲染它们。我有一个离题案例,我想用一种完全不同的方式来呈现它们。我可以为其他格式的练习做另一部分练习,并且仍然可以使用吗Ruby on rails Rails部分资源,ruby-on-rails,partials,Ruby On Rails,Partials,我的应用程序中有一个名为练习的资源。目前,我有一个名为_exercise.html.erb的部分代码,用于渲染它们。我有一个离题案例,我想用一种完全不同的方式来呈现它们。我可以为其他格式的练习做另一部分练习,并且仍然可以使用吗 如果不是,最好的方法是什么?如果我在控制器中输出一个变量,告诉partial使用哪种布局,这将在一个文件中同时包含布局和一个是否决定。还是有更好的方法?在这种情况下,我想您有两种选择: 1) 将条件代码放入_exercises.html.erb中 例如 你看到这东西了吗
如果不是,最好的方法是什么?如果我在控制器中输出一个变量,告诉partial使用哪种布局,这将在一个文件中同时包含布局和一个是否决定。还是有更好的方法?在这种情况下,我想您有两种选择: 1) 将条件代码放入_exercises.html.erb中 例如
你看到这东西了吗
你看到其他东西了吗
这样,你还可以利用
2) 否则,您的另一个选择是使用单独的部分并在外部渲染它们
例如
这是渲染局部图像的最佳方法。您可以在代码中用if-else语句包装该部分。这是我的例子 使用名为_victe.html.erb的表单进行渲染
<%= render :partial => "victim", :locals => {:f => f }%>
“受害者”,:locals=>{:f=>f}%>
无格式渲染
<%= render :partial => "victim"%>
“受害者”%>
如果您想使用业务逻辑来确定何时显示@exercises
集合的部分,则应使用练习模型中的to_partial_path
方法来定义该集合。见本帖第4页:
或者,如果这更像是一个与视图相关的决策(即一个视图将始终使用常规的_exercises.html.erb,另一个视图将始终使用例如_alternate_exercises.html.erb),则您可以指定如下内容:
<%= render partial: 'alternate_exercises', collection: @exercises, as: :exercise %>
这将使
@execrises
中的每个项目的_alternate_exercises.html.erb部分化一次,通过名为exercise的本地分配将项目传递到部分,请发布相关代码。在什么条件下,您会选择其中一个?
<%= render :partial => "victim"%>
<%= render partial: 'alternate_exercises', collection: @exercises, as: :exercise %>