Как добавить файл .erb в существующую модель в rhoMobile - PullRequest
0 голосов
/ 22 декабря 2011

Я создал простое приложение и отредактировал файл index.erb, чтобы у меня было простое представление с текстовым полем и кнопкой.

Теперь, когда я нажимаю на эту кнопку, я хочу, чтобы она переместилась в новый вид. Я знаю, что мы можем добавлять модели, и в этих моделях у нас разные файлы .erb. но я хочу создать один файл .erb или добавить его в существующую модель, чтобы можно было изменить, отредактировать вид и вызвать его, нажимая кнопку.

Это как для каждого экрана мы должны создать модель ??

Я не знаю, как сделать то же самое, я пытался искать, но пока не помог.

Ответы [ 2 ]

3 голосов
/ 13 декабря 2012

Нет, вам не нужно создавать модели для каждого вида (.erb). Если вы хотите добавить новое представление в существующую модель, просто добавьте новый метод (def) в контроллер (.rb) и новое представление (.erb) с тем же именем, что и у нового метода.

допустим, существует модель DemoController.rb в приложении / 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>
0 голосов
/ 22 декабря 2011

Дело не в том, что для каждого экрана нужно создавать модель, а наоборот.Каждую модель, для которой вам нужны интерфейсы, вы будете создавать представления.

Почему бы вам не начать с этого руководства и не начать понимать основы.

Кроме интерфейсов CRUD?Вы можете добавить файл вида непосредственно в папку вида контроллера, с которым связана эта модель.Например, если модель имеет значение post.rb в app/models и имеет соответствующий контроллер posts_controller.rb в app/controllers и имеет соответствующие представления в 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

Добавить представление в приложение / представленияКаталог / posts:

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

Добавить маршрут в файл config / rout.rb:

map.resources do
  member do
    get :landing_page
  end
end

Теперь вы можете получить доступ к странице в http://localhost:3000/posts/:id/landing_page.

...