首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过数组而不是db记录传递变量?

如何通过数组而不是db记录传递变量?
EN

Stack Overflow用户
提问于 2011-12-05 18:33:51
回答 1查看 149关注 0票数 0

我目前正在构建一个数据生成器。首先,我想实现的是PESEL (一种基于出生日期的波兰个人ID )生成器-我想在表单中输入开始和结束出生日期间隔的临时数据-我不想将其存储在数据库中(或者我应该这样做?)这是我的pesel控制器:

代码语言:javascript
复制
  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?哈希?帮助器方法?)

下面是堆栈跟踪(我想):

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-05 23:22:07

form_for假定您传递给它的对象存在某些属性,例如model_name

  1. 不使用form_for @pesel,只需使用form_tag和相关的_tag方法。
  2. 使用的是Pesel模型。模型不是表,并且您的模型不必向数据库写入任何内容。不要从ActiveRecord继承,但要提供model_nameform_for帮助器所需的任何其他字段。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8383979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档