【发布时间】:2017-03-16 02:27:19
【问题描述】:
我正在尝试将数据从外部网站发送到 Rails 应用程序,但未正确路由发布请求。
Rails 应用程序有路线
post '/submit_text/' => 'activities#submitText', as: :submitText
对应控制器动作的代码是
before_filter :submitText
protect_from_forgery :except => :submitText
def submitText
puts "in submitText"
puts params[:text]
puts "end of submitText "
end
我正在尝试像这样将数据从外部网站发送到 Rails 应用程序
<form action="https://todo-list-study.herokuapp.com/submit_text/" method= "post">
<textarea name="response[text]" rows="25" cols="75" id="answer_text">
</textarea>
<input type="submit" name="Submit" value="test" onclick="recordAnswer()">
</form>
当我从外部网站提交数据时,Rails 应用程序会收到它,但它不会将它传递给指定的控制器操作。这是根据 Heroku 日志文件发生的情况:
heroku[router]: at=info method=POST path="/submit_text/" host=todo-list-study.herokuapp.com request_id=fee72511-ad1e-41c3-ae4c-d4b3395e6afd fwd="24.7.71.184" dyno=web.1 connect=1ms service=19ms status=500 bytes=1754 protocol=https
不幸的是,这就是发生的一切。鉴于方法开头的 put 语句没有被执行,我得出结论它没有被调用。即使 Rails 应用程序和外部网站都在 HTTPS 协议上运行,也会发生这种情况。
我能做些什么来解决这个问题?
【问题讨论】:
-
查看 config/environments/development.rb 中的配置
-
我应该在那里寻找什么?
标签: ruby-on-rails post heroku routes