2012-07-29 46 views
0

我试图让分隔成用户根据他们在注册时选择的运动不同类别的页面。我目前正试图用两个不同的部分来做。我遇到的问题是我不能有两个单独的部分使用相同的模型。我将如何做到这一点?如何使多个谐音使用相同型号

+0

如果你告诉我们,你的代码,我们可以告诉你,你在做什么错。 – Mischa 2012-07-30 02:46:08

回答

1

嗯。部分只是一种将多个较小文件中的html.erb代码分开并可能在各种视图之间重复使用它们的方法。

如果你想在一个视图中的分离,是新的轨道,我会尝试没有谐音,直到它的工作(也许只是两个类别)。

然后,你可以将重复的代码到泛音和重用他们,当然你可以使用所有型号那里。也许你只是没有意识到可以将参数传递给partials?像,如果被@feed_item变量由控制器(或任何其它变量)

<%= render 'shared/feed_item_raw', feed_item: @feed_item %> 

并设置然后在部分简单地引用它与feed_item

+0

首先,我试图修改Michael Hartl的rails教程中的示例应用程序。问题是我不能有两个部分使用相同的模型信息。我得到一个“未定义的局部变量或方法'用户'”错误。我认为部分自动继承了 – rockyroadster555 2012-07-29 21:12:34

+0

部分或视图不会继承模型的任何文件夹的模型。在视图中,所有控制器实例变量都可用。对于部分,您可以传递变量,正如我在上面的答案中所指出的那样,如果您需要访问该模型,则需要执行此操作。 – bento 2012-07-29 21:23:30

0

使用这样的:

render :partial => 'partial_path', :locals => {:user => your_user_object} 
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 index动作

我分隔的两个数组是这样的:

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  

这就像一个魅力的我。我希望帮助...

相关问题