2011-12-22 79 views
0

我创建了一个简单的应用程序并编辑了index.erb文件,以便使用文本框和按钮可以获得简单的视图。如何在rhoMobile的现有模型中添加.erb文件

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

是不是每个屏幕都需要创建模型?

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

回答

0

这不是说每个屏幕都要创建一个模型,而不是相反。每个你需要接口的模型都会创建视图。

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

除了CRUD界面?您可以直接将视图文件添加到与此模型关联的控制器的视图文件夹中。例如,如果模型是app/models中的post.rb,并且其app/controllers中有一个对应的控制器posts_controller.rb,并且它在app/views/posts中有相应的视图,则可以使用控制器中的相应方法将视图添加到app/views/posts文件夹,该方法将呈现该视图在config/routes.rb文件中有一条路径。

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

class posts_controller < ApplicationController 
    ... 
    def landing_page 
    end 
end 

添加在应用程序/视图/职位目录中的观点:

# 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访问该页面。

+0

意味着你想说的是,我们可以添加一个.erb文件,我可以在html中设计我的视图?但我如何添加它 – 2011-12-22 09:20:27

+0

@AjeetPratapMaurya看到我更新的答案。 – 2011-12-22 09:32:02

+0

谢谢,帮助 – 2011-12-22 09:35:29

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> 
相关问题