Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 部署到Heroku时,Rails app on/create POST操作中缺少模板_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails 部署到Heroku时,Rails app on/create POST操作中缺少模板

Ruby on rails 部署到Heroku时,Rails app on/create POST操作中缺少模板,ruby-on-rails,heroku,Ruby On Rails,Heroku,我在Heroku上体验了Rails应用程序的一些非常奇怪的行为。基本上,我在一个控制器中做了一个非常简单的帖子,但由于缺少模板异常而失败。就我个人而言,我不明白为什么这个内置的控制器操作需要一个模板(??)。奇怪的是,这在本地运行得很好——异常只发生在已部署的应用程序上。这就是我从Heroku日志中得到的所有信息 Started POST "/camps" for ............ at 2011-11-17 23:27:47 +0000 ActionView::MissingTempl

我在Heroku上体验了Rails应用程序的一些非常奇怪的行为。基本上,我在一个控制器中做了一个非常简单的帖子,但由于缺少模板异常而失败。就我个人而言,我不明白为什么这个内置的控制器操作需要一个模板(??)。奇怪的是,这在本地运行得很好——异常只发生在已部署的应用程序上。这就是我从Heroku日志中得到的所有信息

Started POST "/camps" for ............ at 2011-11-17 23:27:47 +0000
ActionView::MissingTemplate (Missing template camps/create, application/create with
{:handlers=>[:erb, :builder, :haml], :formats=>[:html], :locale=>[:en, :en]}. Searched in:
* "/app/app/views"
* "/app/vendor/bundle/ruby/1.9.1/gems/kaminari-0.12.4/app/views"
* "/app/vendor/bundle/ruby/1.9.1/gems/devise_invitable-0.5.7/app/views"
* "/app/vendor/bundle/ruby/1.9.1/gems/devise-1.4.9/app/views"
):
cache: [POST /camps] invalidate, pass

它不应该渲染任何东西


您的操作中是否有
render:nothing=>true

如果它与我刚才遇到的问题类似,那么问题在于,出于某种原因,rails在处理完您的post请求后不知道该去哪里。下面是我的一些代码,它们产生了完全相同的错误:

def create
  if params[:favorite] == true
    current_user.favorite == true
  else
    redirect_to root_url
  end
end
问题是,如果if语句的第一部分为true,我将用户收藏夹属性设置为true。然后我什么也没做。我忘了通知rails下一步要去哪里。Rails继续到create方法的底部,没有找到任何地方,所以它认为我必须定义了一个默认的create模板,并开始寻找它。当它找不到的时候,它基本上转向我说,“我下一步该去哪里?”

固定代码如下所示

def create
  if params[:favorite] == true
    current_user.favorite == true
  end
  redirect_to root_url
end

在这个固定的代码中,无论if语句结果如何,我仍然告诉rails,在使用此方法完成后,它应该转到根路由,也就是我的主页。

是的,它不应该呈现任何内容。这是一个自动创建的后期操作,因为我在路由文件中有一个“camp”模型资源(参考资料:camps)。因此,它应该查找模板的唯一时间是,如果操作在退出方法之前无法重定向。无论如何,我创建了一个名为“make”的新的POST操作,它可以正常工作,因此,关于它的一些内容有默认的“create”"方法并不能让Rails满意。虽然这两种解决方案都能工作,但我肯定认为
render:nothing=>true
是这里的首选解决方案。如果不需要,为什么还要在控制器中执行额外操作呢?渲染nothing对我来说也很有效,但基本问题是。如果这是一个POST调用,由defa提供ult,它不应该返回任何内容吗?为什么我们必须明确指定?我得到了一个类似的令人困惑的错误。它没有引起问题,但仍然令人困惑。我的错误是:
没有找到PagesController的模板#联系人,呈现头:无内容
呈现内容:true
,实际上对我不起作用。这让我感到困惑一个空白页
/contact
。我只创建了
联系人
路线,这样我就可以发送电子邮件了。啊,当然。
头:我需要的是没有内容的内容。我仍然不明白为什么我会在post请求中需要它,但我想这是因为这是一个非restful路线/操作。