我目前正在构建一个数据生成器。首先,我想实现的是PESEL (一种基于出生日期的波兰个人ID )生成器-我想在表单中输入开始和结束出生日期间隔的临时数据-我不想将其存储在数据库中(或者我应该这样做?)这是我的pesel控制器:
def new
@pesel = Array.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @pesel }
end
end但是我得到了一个"undefined method `model_name‘for NilClass:Class“错误--这是解决这种情况的好方法吗?我在某处读到使用临时变量不是“Ruby方式”--如果我的解决方案是错误的,请推荐正确的方案。(例如,通过cookies传递此vars?哈希?帮助器方法?)
下面是堆栈跟踪(我想):
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)发布于 2011-12-05 23:22:07
form_for假定您传递给它的对象存在某些属性,例如model_name。
form_for @pesel,只需使用form_tag和相关的_tag方法。model_name和form_for帮助器所需的任何其他字段。https://stackoverflow.com/questions/8383979
复制相似问题