Ruby on rails 需要一些关于按轨道办事的建议吗

Ruby on rails 需要一些关于按轨道办事的建议吗,ruby-on-rails,model-view-controller,design-patterns,Ruby On Rails,Model View Controller,Design Patterns,我已经构建了一个非常简单的Rails应用程序。。。如果向某个网页发送请求,它会自动生成报告并将其保存到服务器本地的文件中。默认情况下,生成的报告是为当天创建的。我想做的是允许用户在url中输入日期,他们希望生成报告,以便将我的小把戏小马变成更有用的东西 目前,我已经将所有有用的报告生成代码构建到主控制器的索引操作中,但我不禁觉得它确实属于模型而不是控制器,但我不太确定如何进行转换 如果您是经验丰富的rails兽医,我们将不胜感激 谢谢 我的索引操作中的代码。。。。 基本上,调用了索引操作get,

我已经构建了一个非常简单的Rails应用程序。。。如果向某个网页发送请求,它会自动生成报告并将其保存到服务器本地的文件中。默认情况下,生成的报告是为当天创建的。我想做的是允许用户在url中输入日期,他们希望生成报告,以便将我的小把戏小马变成更有用的东西

目前,我已经将所有有用的报告生成代码构建到主控制器的索引操作中,但我不禁觉得它确实属于模型而不是控制器,但我不太确定如何进行转换

如果您是经验丰富的rails兽医,我们将不胜感激

谢谢

我的索引操作中的代码。。。。 基本上,调用了索引操作get,我的程序计算出今天是哪一天,然后使用该日期向另一个API发出请求,该API然后以对象的形式返回必要的信息。然后,我只需浏览对象,收集我需要的信息,并用这些信息生成一个文本文件。主控制器的视图只打印一条消息,说明已生成报告,并提供报告的路径


我想强调的是,我想使用mysite.com/report/20110803这样的url向我的控制器提供有关报告运行日期的信息。

您认为此代码属于模型是正确的。理想情况下,报告模型。控制器通常应该只向视图提供实例变量、处理flash消息等等。逻辑应该在模型中

也就是说,我会这样做:创建一个模型方法来生成所需的报告。然后,在控制器中执行该方法,并根据传递到模型方法中的时间戳返回所需的报告

然后,控制器中会有以下内容:

redirect_to new_report_url, :stamp => the_stamp_value

我想你明白了。您只需要有一个简单的路由,它需要一个戳记值,您就可以开始了:)

您可以在索引操作中向我们展示代码吗?如果您向我们展示您的代码,您会得到更具体/更好的建议。@Misha我已尝试添加更多关于代码的解释,以解决路由问题。我是否将报表声明为routes.rb文件中的资源?您可能应该将其移出HomeController,并创建一个包含标准RESTful路由的报表控制器它(只有您需要的)然后您可以在routes.rb文件中执行
resources:reports
。如果您在ReportsController中只有
create
index
show
操作,那么您可以只添加
资源:报表,:only=>[:create,:index,:show]
,例如,+1 iWasRobbed说得对。学习如何手动编写路由是个好主意。理解后台路由中到底发生了什么是很容易的,而且是值得的。