как передавать переменные массивами не записи в БД? - PullRequest
0 голосов
/ 05 декабря 2011

Я сейчас создаю генератор данных.Сначала я хочу реализовать генератор PESEL (вид персонального идентификатора в Польше на основе даты рождения) - я хочу ввести в форму временные данные с интервалом даты начала и окончания - я не хочу сохранять их в базе данных (илиДолжен ли я это сделать?) Вот мой контроллер pesel:

  def new
    @pesel = Array.new
    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @pesel }
    end
  end

, но у меня есть ошибка "неопределенный метод" имя_модели "для NilClass: Class" - это хороший способ решить эту проблему?дело?Я где-то читал, что использование временных переменных не относится к «The Ruby Way» - если мое решение неверно, предложите правильное.(например, передать эти переменные через cookie-файлы? hash? вспомогательный метод?)

вот трассировка стека (я думаю):

Started GET "/pesel" for 127.0.0.1 at 2011-12-05 16:18:20 +0100
  Processing by PeselController#new as HTML
Rendered pesel/new.html.erb within layouts/application (1513.9ms)
Completed 500 Internal Server Error in 1793ms

ActionView::Template::Error (undefined method `model_name' for NilClass:Class):
    1: <%= simple_form_for @pesel do |f| %>
    2:   <%= f.input :date_of_birth, :as => :date, :start_year => Date.today.year - 90,
    3:                                 :end_year => Date.today.year - 12, :discard_day => true,
    4:                                 :order => [:month, :year] %>
  app/views/pesel/new.html.erb:1:in `_app_views_pesel_new_html_erb__708648673_90148530'
  app/controllers/pesel_controller.rb:7:in `new'

Rendered /home/ofca/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (5.6ms)
Rendered /home/ofca/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (4.0ms)
Rendered /home/ofca/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (17.6ms)

1 Ответ

1 голос
/ 05 декабря 2011

form_for предполагает наличие определенных свойств для объекта, который вы передаете ему, например model_name.

  1. Вместо использования form_for @pesel, просто используйте form_tagи связанные _tag методы.
  2. Используйте модель Пезеля.Модели - это , а не таблицы, и ваша модель не должна ничего записывать в базу данных.Просто не наследуйте от ActiveRecord, но предоставьте model_name и любые другие поля, которые ожидает помощник form_for.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...