如何在rhoMobile中的现有模型中添加.erb文件

时间:2011-12-22 09:09:37

标签: ruby rhomobile rhodes

我创建了一个简单的应用程序并编辑了index.erb文件,这样我就可以看到一个带有文本框和按钮的简单视图。

现在,当我点击该按钮时,我希望它导航到新视图。 我知道我们可以添加模型,在该模型中我们有不同的.erb文件。 但我想创建一个.erb文件或将其添加到现有模型,以便我可以更改编辑视图并按下按钮调用该视图。

我们必须创建一个模型吗?

我不知道该如何做同样的事情,到目前为止,我试过搜索但没有帮助。

2 个答案:

答案 0 :(得分:3)

不,您不必为每个视图(.erb)创建模型。如果要将新视图添加到现有模型,只需将新方法(def)添加到控制器(.rb)和新视图(.erb)中,其名称与新方法相同。

假设在app / Demo中存在一个模型DemoController.rb。您可以像

一样添加新方法
class DemoController < Rho::RhoController
  ...
  def index
  end

  def new_method
  end

end

要从索引视图导航到new_method,您可以编写

<button onclick="location.href='/app/Demo/new_method'">new method</button>

<button onclick="location.href='<%= url_for :action => :new_method %>'"
>new method</button>

答案 1 :(得分:0)

并不是每个屏幕都要创建一个模型而不是反过来。您需要接口的每个模型都可以创建视图。

为什么不从this guide开始,继续理解基础知识。

除CRUD接口外?您可以将视图文件直接添加到与此模型关联的控制器的视图文件夹中。例如,如果模型是app/models中的post.rb,并且posts_controller.rb中有相应的控制器app/controllers,并且app/views/posts中有相应的视图,那么您可以添加视图使用控制器中相应方法的app/views/posts文件夹将提供该视图,并在config/routes.rb文件中提供该路径。

说我想在Post上添加landing_page.html.erb视图。我会在posts_controller.rb中添加一个方法(虽然这不是强制性的。但是,在渲染视图之前检查一些条件可能对你有用):

class posts_controller < ApplicationController
  ...
  def landing_page
  end
end

在app / views / posts目录中添加一个视图:

# app/views/posts/landing_page.html.erb

添加到config / routes.rb文件的路由:

map.resources do
  member do
    get :landing_page
  end
end

现在,您可以访问http://localhost:3000/posts/:id/landing_page页面。