首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 4中未设置实例变量

Rails 4中未设置实例变量
EN

Stack Overflow用户
提问于 2014-05-13 05:38:45
回答 2查看 133关注 0票数 1

我有一个Rails 4应用程序的问题,这个应用程序过去工作得很好。现在,实例变量在设置后仍然为空。在控制器中,我有以下代码:

代码语言:javascript
运行
复制
def create
  @reportdate = Reportdate.new(reportdate_params)
  weekly_summary = getSOData(@reportdate.start_date, @reportdate.end_date)
  @reportdate.questions = weekly_summary[:question_ids]
  @reportdate.num_answers = weekly_summary[:answers]
  @reportdate.views = weekly_summary[:views]
  respond_to do |format|
  if @reportdate.save
  ...

当我运行这段代码时,会设置@reportdate.num_answers@reportdate.views,但@reportdate.questions仍然是nil

当我在调试器中运行它时,我验证了weekly_summary[:question_ids]等于

[21636454, 21539706, 21611661, 21632781, 21583630, 21614059, 21634704, 21615609, 21595829, 21564079, 21587196, 21537280]

这以前是有效的,但我不知道为什么它现在不起作用。

EN

回答 2

Stack Overflow用户

发布于 2014-05-13 15:03:44

代码语言:javascript
运行
复制
def create
  @reportdate = Reportdate.new(reportdate_params)
  weekly_summary = getSOData(@reportdate.start_date, @reportdate.end_date)

  @reportdate.questions   = weekly_summary[:question_ids]
  @reportdate.num_answers = weekly_summary[:answers]
  @reportdate.views       = weekly_summary[:views]

  respond_to do |format|
      if @reportdate.save
         ...

我认为答案超出了您的控制器的范围。我对上面的内容进行了更改,以反映操作中使用的数据,正如您所看到的,接收数据的主要方式来自weekly_summary方法

我会检查以下内容:

  1. 是否正在正确填充变量?
  2. 是否为.questions Reportdate对象的属性?如果没有,你是否有一个attr_accessor
  3. Your Reportdate object needs to be CamelCase - have be ReportDate (这可能会导致问题)
  4. 在注释中提到,你的模型可能会因为验证问题而阻止保存。

所有这些都表明应用程序的其他部分存在问题

你能把你的Reportdate模型和weekly_summary代码贴出来吗?

票数 0
EN

Stack Overflow用户

发布于 2014-05-14 01:06:08

感谢大家的回复。问题是我没有正确地设置实例变量。我不认为我对那部分代码做了改动,但它不可能按照它的编写方式工作,所以我必须这样做。现在,一切都已修复并正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23619318

复制
相关文章

相似问题

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