我有一个rails应用程序,用户既可以创建产品,也可以通过订单购买产品。
我的usertable中有一个名为usermode的字段,它将用户设置为store_owner或customer。
或
我对rails并不熟悉,也不确定我是否需要将这个逻辑放在模型中,创建单独的控制器,或者在我现有的产品控制器索引中执行某种if语句。我认为它应该在控制器索引中。
我怎样才能做到这一点?
发布于 2014-01-20 08:39:32
解决方案是在我的产品控制器中这样做:
if current_user.usermode =="Store_Owner" then
@dashboards = current_user.dashboards.active.order(:title)
elsif current_user.usermode =="Customer" then
@dashboards = Dashboard.joins(line_items: :order).where('orders.user_id' => current_user.id).all.uniq
end发布于 2014-01-10 03:05:55
根据我的意见,
我会把同样的逻辑放在同一个控制器里。在这两种情况下(Store_Owner或Customer),您将向显示相同的数据类型(产品)。这两种情况下唯一的更改b/w是数据是不同的。罗尔是干的。因此,我认为没有必要为此创建新的视图模板。然而,有些人认为控制器中的每个动作必须代表单个功能(以减少控制器中的杂乱)。这意味着控制器中的条件语句较少。所以你有两个选择:
我认为第一个是更好的方法
编辑
一般的方法是
1) View:与how we will show相关的逻辑将在这里
2) 模型:与What data或changes on data相关的逻辑将出现在这里。
3) 控制器:与fetch data from model和decide which page to render/redirect流相关的逻辑
https://stackoverflow.com/questions/21034445
复制相似问题