LoginSignup
1
1

More than 3 years have passed since last update.

[Rails]submit時のエラー

Posted at

railsのsubmit時に出たエラーについての忘備録です。

エラー内容

コード:f.submitでレコードを追加、変更する。このコードはレコード追加時のものを使用しています。

new.html.erb
<%= form_for(@article) do |f|  %>
<%= f.submit "送信"%>
<% end %>

ルーティングに登録ヨ。とエラーが出る。

スクリーンショット (44).png

form_for(@~~)を使えば、自動でルーティングが割り当てられるんじゃなかったけ?と思い、色々調べたんですが、なかなか解決しませんでした。。

解決方法

解決策自体はここに記述されています。

ルーティングエラーなので、form_forにコントローラとアクション名を指定すれば、urlをうまく引き渡すことができます。
下記のコードでうまくいきます。

<%= form_for(@article,  url: {controller: 'article', action: 'create'}) do |f|  %>

エラーの原因

form_for(@~~)のルーティングの自動生成はされないのかい??

urlの指定方法が良くなくて、自動生成されないみたいです。下記の記事とチュートリアルを参考にしてください。

単数形のurlの指定方法だと、form_for(@~~)でルーティングが自動生成されないようです。
例えば、urlの指定方法が

article/create

だと、ルーティングの自動生成が行われなくて、

articles/create

だと自動生成が行われるみたいです。

なので、コントローラを作成する際は、複数系にしたほうが無難です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1