如何配置控制台以实际运行Controller或Model方法

时间:2015-10-21 17:53:37

标签: ruby-on-rails

是的,我已经检查过SO的其他帖子,关于如何从控件中调用控制器或MOdel方法,他们提到了以下内容:

foo = ActionController::Base::ApplicationController.new
foo.some_method 

即创建实例然后调用该方法。但是如果我在我的linux控制台上写这个,那就说:

bash: =: command not found 

如果我从Nitrous那里做同样的事情我得到同样的答复。

我还可以在RailsCasts上看到作者如何只是写出模型点和方法名称的名称,它会运行,但这将回显我的控制台中找不到的命令。我的模型被称为文章,因此Article.fetchstuff将无效。

http://railscasts.com/episodes/168-feed-parsing?autoplay=true
从我的控制台

我可以得到其他命令,如

rails s, rails generate controller, rails runner 

等,但就是这样。

我也读过类似的内容:

$ ./script  

但这样做它会读取未找到的命令,如果在Nitrous我写道: 脚本,它回声,

script started 

所以我必须尝试从错误的地方执行所有这些命令,但不知道还能做什么。

2 个答案:

答案 0 :(得分:2)

这是如何使它工作: - )

$ rails console
> foo = ApplicationController.new

然后,您可以使用

检查可用的方法
> foo.methods

您可以使用

列出的公共方法
> foo.public_methods

然后你可以调用你想要调用的方法,例如

> foo.formats
=> [:html, :text, :js, :css, ...]

这是你尝试做的吗?

答案 1 :(得分:0)

我认为令人困惑的部分是你问的是如何从控制台运行,我们很多人都认为你指的是rails控制台而不只是你的终端shell(即bash) 。 Rails旨在作为应用程序运行,控制台通常用于调试和/或测试代码构思。 Sugaryourcoffee的答案似乎很简单。您必须首先使用

从终端启动rails控制台
rails c

rails console

进入rails控制台后,您可以运行sugaryourcoffee描述的方法。要记住一件事,你将无法直接调用私有方法。当然,在运行rails console之前,您必须位于应用程序根目录中。