我正在构建一个数据生成器。首先我要实现的是PESEL(基于出生日期在波兰的个人ID)生成器 - 我希望以开始和结束出生日期间隔的形式输入临时数据 - 我不想将其存储在数据库中(或者我应该这样做吗?) 这是我的pesel控制器:
def new
@pesel = Array.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @pesel }
end
end
但是我有一个“未定义的方法`model_name'用于NilClass:Class”错误 - 无论如何这是一个很好的解决方案吗?我在某处读到使用临时变量并没有使用'The Ruby Way' - 如果我的解决方案有误,请建议正确的。 (例如通过cookies传递这些变量?哈希?帮助方法?)
这是堆栈跟踪(我认为):
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)
答案 0 :(得分:1)
form_for
假设您传递的对象存在某些属性,例如model_name
。
form_for @pesel
,只需使用form_tag
和相关的_tag
方法。model_name
以及form_for
帮助者期望的任何其他字段。