Elixir 链接创建与凤凰城的行动
我正在尝试启动一个创建操作,其中包含一个链接,指向Phoenix中的link_helpers。但似乎没有一个明显的答案,所以我认为这可能是一个不好的做法 以下是我正在尝试的:Elixir 链接创建与凤凰城的行动,elixir,phoenix-framework,Elixir,Phoenix Framework,我正在尝试启动一个创建操作,其中包含一个链接,指向Phoenix中的link_helpers。但似乎没有一个明显的答案,所以我认为这可能是一个不好的做法 以下是我正在尝试的: <%= link "Create Prediction Points", to: prediction_score_path(@conn, :create) %> 有办法做到这一点吗?如果是这样,我应该吗?任何可能改变服务器上某些内容的操作都应该在HTTP POST后面,而不是HTTP GET后面。因此,即使
<%= link "Create Prediction Points", to: prediction_score_path(@conn, :create) %>
有办法做到这一点吗?如果是这样,我应该吗?任何可能改变服务器上某些内容的操作都应该在HTTP POST后面,而不是HTTP GET后面。因此,即使您可以在控制器中设置一个指向
create
操作的链接,我们肯定可以,而且我们会在一秒钟内完成,也不建议这样做,因为create
操作通常会在服务器中创建一些内容,如果您将这些内容放在链接后面,浏览器插件可能会意外访问这些内容,爬虫之类的东西
也就是说,如果在应用程序中运行mix phx.routes
,您将看到以下路由:
GET /prediction_scores/ index
POST /prediction_scores/ create
i、 URL是相同的,但请求之间的变化是HTTP动词(GET vs POST)。这就是为什么它试图调用index/2
,而不是create/2
。您可以通过两种方式修复它:
链接
函数调用的末尾传递方法::POST
选项索引
操作或可以在路由器+控制器中创建的其他创建你能发布完整的错误信息吗?控制器中的函数名似乎有误或不带2个参数。另外,路由定义是什么样子的?谢谢您提供详细的答案。非常有用
GET /prediction_scores/ index
POST /prediction_scores/ create