【问题标题】:How create a new method in my controller in Ruby On Rails?如何在 Ruby On Rails 的控制器中创建新方法?
【发布时间】:2013-07-30 04:30:53
【问题描述】:

我想在 Ruby on Rails 的控制器“应用程序”中生成一个方法,但是我使用了脚手架,现在我不知道是否也必须创建一个新视图。

  def list
    @applications = Application.all

  end

我只希望我的控制器给我所有的应用程序对象,但我不知道我是否必须创建一个新视图。

【问题讨论】:

  • 使用现有的index 操作有什么问题?

标签: ruby-on-rails ruby view controller


【解决方案1】:

是的,如果您要显示@applications,您需要一个视图。当然,如果您使用的是erb,请创建一个新文件app/views/applications/list.html.erb

如果您还没有这样做,您还需要添加一个路由到这个list 操作。我假设一个获取请求,因为您的代码仅显示检索Application。在您的 config/routes.rb 添加以下行:

resources :applications do 
  collection do 
    get :list
  end
end

这些完成后,您将拥有/applications/list 路径,该路径将执行您的ApplicationsControllerlist 操作和视图list.html.erb

【讨论】:

  • 很好的答案。非常有帮助 =) 但是现在,我想知道我是否做了脚手架,我的路线“资源:应用程序”中有这个,当我使用你告诉我的代码时,我得到了那个错误:“未定义的方法‘集合’” .我做错了吗?
  • @CrisTowi,抱歉打错了。它应该是collection,而不是collections。也更正了我的答案。
  • @CrisTowi,太好了。很高兴能帮上忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多