2008-11-25 31 views
3

在我正在建设的网站的管理部分中,我想组合一个仪表板页面或'快速查看'类型页面,其中可以查看几个不同区域中最近的更改/添加/等。RoR:构建'仪表板'类型页面的最佳方法?

我在想这样做的最好方法是使用partials并让每个partial都包含我需要显示的数据的标记。

我的问题是,这是最好的方法吗?如果是这样,我该如何区分这些部分的逻辑和表达?例如,我如何将逻辑放置在仪表板控制器中,但将演示文稿保留在部分rhtml中?

回答

2

部分是绝对要走的路,尤其是当您可以将任意数据传入它们以使它们完成任务时。具体回答你的逻辑分离的问题,你可以使用:

<%= render :partial => "name_of_partial", :locals => { :some_var => @data_from_model } %> 

然后,你里面的部分,你必须获得通过some_var变量@data_from_model。

1

控制器应负责检索需要呈现的数据(并且通常隐式地将其传递给视图)。此处不构建HTML。

当然,partials是你找出演示文稿的地方 - 你可以使它成为一个列表,图形,Google可视化小部件,一个40点字体的单个数字,无论如何。

<%= render :partial => 'new_users_last7days', ;locals => { :new_user_count => @new_users.size } %> 
+0

我应该指出的是,如果您的范围数据类似于“过去7天内的新用户”,那么应该在模型级别使用命名范围来处理。 – bradheintz 2008-11-25 17:04:55