基本表单操作无法在heroku上运行(但在本地工作)

时间:2012-05-09 02:02:48

标签: ruby-on-rails ruby ruby-on-rails-3 heroku

编辑:我觉得很蠢,我没有用git正确地合并我的分支。就像我说的那样,我对编程很陌生,并且容易出现这些类型的错误。不过,我很感激你的帮助。

我在。 7个Rails by Example书,我在其中创建了一个基本的"注册"形成。当我在本地主机上提交表单时,通过指示我

来正常工作

LOCALHOST / new(返回注册页面,注册信息错误)或LOCALHOST / show(用户个人资料,成功)。

当我将同一个应用程序推送到heroku并点击提交按钮时,它总是引导我到这个网址:

appname.heroku.com/form_action.asp?fname=&email=&password=&password=告诉我 "您要查找的页面不存在。您可能输错了地址或页面可能已移动。"

而不是appname.heroku.com/new或/ show。

我很困惑,我是一名初学程序员,我很难理解为什么在本地主机上工作如此完美,但在生产服务器上却没有。请帮忙!

我的代码在github上: https://github.com/Chamza/Sample-App2

1 个答案:

答案 0 :(得分:0)

你在Heroku上运行'雪松'堆栈吗?我认为网址应该是appname.herokuapp.com - 而不是appname.heroku.com。由于你在github中的代码是基于rails 3.2.1的,你应该使用雪松堆栈。

以下是来自heroku的雪松堆栈的一些信息:https://devcenter.heroku.com/articles/cedar

此外,您可以运行heroku logs --tail --app my-app-name然后发布点击链接时会发生什么吗?这被称为“拖尾日志”,它将为您提供正在发生的事情的实时输出。

EDIT ***

我查看了您的代码,我发现至少有一个问题是您正在使用的表单:

<% provide(:title, 'Sign up') %>
<div style = "width: 200px; margin: 0 auto;">
  <form  action="form_action.asp" method="get">
    <h1>Sign up</h1>
    <p align="left">Name:</p>
    <input type="text" name="fname" />  
    <p>Email:</p>
    <input type="text" name="email" />
    <p>Password:</p> 
    <input type="password" name="password" />
    <p>Password Confirmation:</p>
    <input type="password" name="password" /> 
    <br/>
    <input type="submit" value="Submit" />
  </div>
</form>

表单中有一些错误。首先,行动是form_action.asp。看起来它来自一个旧项目。其次,结束</div></form>标记已切换 - 表单标记应位于div标记之前。

<% provide(:title, 'Sign up') %>
<div style = "width: 200px; margin: 0 auto;">
  <form  action="form_action.asp" method="get">
    <h1>Sign up</h1>
    <p align="left">Name:</p>
    <input type="text" name="fname" />  
    <p>Email:</p>
    <input type="text" name="email" />
    <p>Password:</p> 
    <input type="password" name="password" />
    <p>Password Confirmation:</p>
    <input type="password" name="password" /> 
    <br/>
    <input type="submit" value="Submit" />
  </div>
</form>

本地计算机上的代码可能与您在Heroku上部署的代码不同。我仔细检查 - 做一个heroku releases --app my-app它会告诉你服务器上最新的git提交是什么。

相关问题