2

编辑:我觉得很愚蠢,我没有正确地将我的分支与 git 合并。就像我说的,我对编程很陌生,很容易出现这些类型的错误。不过,我感谢您的帮助。

我在频道上。Rails by Example 书的第 7 章,我在其中创建了一个基本的“注册”表单。当我在本地主机上提交表单时,它可以通过将我引导至

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

4

1 回答 1

0

您是否在 Heroku 上运行“雪松”堆栈?我相信 url 应该是appname.herokuapp.com- 不是appname.heroku.com。由于您在 github 中的代码基于使用 rails 3.2.1,因此您应该使用 cedar 堆栈。

以下是 heroku 中有关 cedar 堆栈的一些信息:https ://devcenter.heroku.com/articles/cedar

另外,您可以运行heroku logs --tail --app my-app-name然后发布单击链接时会发生什么吗?这就是所谓的“跟踪日志”,它将为您提供正在发生的事情的实时输出。

编辑***

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

<% 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>标签交换——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 commit 是什么。

于 2012-05-09T02:51:01.033 回答