我正在尝试制作一个页面,根据用户在注册时选择的运动将用户划分为不同的类别。我目前正试图用两个不同的部分来做。我遇到的问题是我不能让两个单独的部分使用相同的模型。我该怎么做?
答案 0 :(得分:1)
嗯。部分只是一种将html.erb代码拆分为多个较小文件并可能在各种视图之间重用的方法。
如果你想在一个视图中进行分离,并且不熟悉rails,我会在没有偏见的情况下尝试它,直到它工作(可能只有两个类别)。
然后,您可以将重复的代码分解为部分并重复使用它们,当然您可以在那里使用所有模型。也许您只是不知道将参数传递给partials的可能性?比如,如果@feed_item是由控制器(或任何其他变量)设置的变量
<%= render 'shared/feed_item_raw', feed_item: @feed_item %>
然后在部分中简单地用feed_item
答案 1 :(得分:0)
使用它:
render :partial => 'partial_path', :locals => {:user => your_user_object}
答案 2 :(得分:0)
我有一个模型,客户端,它们具有不同的状态。我需要在同一页的不同部分呈现它们
<%= render(partial: "active_clients", collection:@active_clients) || "No active clients yet." %>
<%= render(partial: "inactive_clients", collection:@unactive_clients) || "No inactive clients yet." %>
那些去各自的观点部分。
然后在我的视图/ clients文件夹中,我创建了两个不同的部分,因为每个部分略有不同。
_active_clients.html.erb
_inactive_clients.html.erb
其中一个部分内容如下:
<li>
<input class="checkbox" checked="checked" type="checkbox"/>
<%= link_to "#{active_clients.firstname} #{active_clients.lastname}", dashboard_path %>
</li>
其他部分在复选框中没有“已选中”。这是唯一的区别。
在我的clients_controller索引操作中,我已经分离了两个这样的数组:
def index
@active_clients = current_trainer.active_clients
@inactive_clients = current_trainer.inactive_clients
end
最后一块是在训练师模型中......
def active_clients
self.clients.where(status: true)
end
def inactive_clients
self.clients.where(status: false)
end
这对我来说就像一个魅力。我希望有帮助...