我正在尝试制作一个页面,根据他们在注册期间选择的运动将用户分为不同的类别。我目前正在尝试使用两个不同的部分来做到这一点。我遇到的问题是我不能让两个单独的部分使用相同的模型。我该怎么做?
问问题
1214 次
3 回答
1
嗯。部分只是一种将 html.erb 代码拆分为多个较小文件并可能在不同视图之间重用它们的方法。
如果您希望在一个视图中进行分离,并且对 rails 不熟悉,我会尝试不使用部分内容,直到它起作用(可能仅适用于两个类别)。
然后,您可以将重复的代码分解为部分并重用它们,当然您可以使用那里的所有模型。也许您只是不知道将参数传递给部分的可能性?就像,如果 @feed_item 是控制器设置的变量(或任何其他变量)
<%= render 'shared/feed_item_raw', feed_item: @feed_item %>
然后在部分中简单地引用它feed_item
于 2012-07-29T21:05:41.230 回答
0
用这个:
render :partial => 'partial_path', :locals => {:user => your_user_object}
于 2012-07-30T02:42:35.307 回答
0
我有一个模型,客户端,它们有不同的状态。我需要在同一页面的不同部分呈现它们
<%= render(partial: "active_clients", collection:@active_clients) || "No active clients yet." %>
<%= render(partial: "inactive_clients", collection:@unactive_clients) || "No inactive clients yet." %>
那些去他们各自的视图部分。
然后在我的视图/客户端文件夹中,我创建了两个不同的部分,因为每个部分都略有不同。
_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
这对我来说就像一个魅力。我希望这会有所帮助...
于 2014-03-15T17:12:47.230 回答