我需要对控制器进行自定义操作以添加内容。 On" get"它显示一个表单,并在帖子上插入数据和重定向。我想知道,添加新项目的单一操作是不好的做法吗?我应该为"得到"一个用于" post"代替?
答案 0 :(得分:1)
使用单个操作添加新项目
是一种不好的做法
是的,这有点不好做法。首先,它完全反对RESTful principle。
其次,它违反单一责任原则。如果你的行为处理了这两件事,你就必须按照
的方式做一些事情def my_custom_action
if request.post?
# create stuff
else
# render form
end
end
这是一种可以避免的代码复杂化。
简而言之,我认为这样做没有任何好处和好处。
答案 1 :(得分:0)
根据宁静的路线概念,使用单一方法显示表单和提交表单不是一个好习惯。
但是如果你想按照选择或偏好去做,你可以像下面的代码一样。
您可以为get和post方法创建单个方法。通过使用这样的东西。
match '/customurl' => 'controller#action', via: [:get, :post]
在这里,您需要在方法中相应地编写代码,方法是通过get或post调用方法并相应地执行任务。
希望这会有所帮助!