我已经创建了一个简单的应用程序并编辑了索引。这样我就有了一个带有文本框和按钮的简单视图。
现在当我点击那个按钮时,我想让它导航到一个新的视图。我知道我们可以添加模型,在模型中我们有不同的。erbb文件。但是我想创建一个.erb文件或将其添加到现有模型中,以便我可以更改编辑视图并在按下按钮时调用该视图。
是不是每个屏幕我们都要创建一个模型??
我不知道如何做同样的,我试着搜索,但没有帮助,到目前为止
不,您不必为每个视图(.erb)创建模型。如果你想在现有模型中添加新视图,只需在控制器(.rb)中添加新方法(def),并使用与新方法相同的名称添加新视图(.erb)。
假设存在一个DemoController模型。在app/Demo中。你可以像
那样给它添加新的方法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>
并不是说您必须为每个屏幕创建一个模型,而是相反。对于每个需要接口的模型,都要创建视图。
你为什么不从这个指南开始,然后继续了解基础知识呢?
除了CRUD接口?您可以将视图文件直接添加到与此模型相关联的控制器的视图文件夹中。例如,如果模型是post。rb在app/models
中,它在app/controllers
中有一个相应的控制器posts_controller.rb
,它在app/views/posts
中有相应的视图,然后你可以将你的视图添加到app/views/posts
文件夹中,在控制器中有一个相应的方法,它将呈现该视图,只要在config/routes.rb
文件中有一个路由。
假设我想添加一个landing_page.html.erb
视图到Post。我会在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
的页面