0

簡単なアプリケーションを作成し、index.erb ファイルを編集して、テキスト ボックスとボタンを備えた簡単なビューを作成しました。

そのボタンをクリックすると、新しいビューに移動します。モデルを追加でき、そのモデルにはさまざまな .erb ファイルがあることはわかっています。しかし、単一の .erb ファイルを作成するか、既存のモデルに追加して、ビューを変更して編集し、ボタンを押したときにそのビューを呼び出すことができるようにしたいと考えています。

モデルを作成する必要があるすべての画面のようなものですか??

同じことをする方法がわかりません。検索してみましたが、これまでのところ助けにはなりませんでした。

4

2 に答える 2

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>
于 2012-12-13T11:22:02.110 に答える
0

その逆ではなく、すべての画面でモデルを作成する必要があるわけではありません。ビューを作成するインターフェイスが必要なすべてのモデル。

このガイドから始めて、基本を理解することから始めてみませんか。

CRUDインターフェース以外?このモデルが関連付けられているコントローラのビュー フォルダにビュー ファイルを直接追加できます。たとえば、モデルが post.rb でapp/models、対応するコントローラーposts_controller.rbapp/controllersあり、対応するビューがあるapp/views/posts場合、ビューをapp/views/postsフォルダーに追加して、コントローラーの対応するメソッドを使用して、そのビューをレンダリングします。それはconfig/routes.rbファイルにあります。

landing_page.html.erbPost にビューを追加したいとします。メソッドを追加します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

于 2011-12-22T09:17:02.727 に答える