質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1467閲覧

rails form_tagについて

dossy

総合スコア109

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/03/06 12:01

編集2019/03/06 12:01

railsでformを作成したいです。

form_tag form_for form_with
色々あるんですが、どれでもいいんですが
うまくroutingが通ってくれません。

現状:
urlは
page/show.id => page/3
のshowのところでformを使いたい。
(できれば、create以外のmethodを定義して使いたい。)

<%= form_tag('/page',method: :post) do %> <textarea placeholder="ユーザー名" name="name" id="" cols="30" rows="10"></textarea> <textarea id="massage" placeholder="メッセージ" name="image" id="" cols="30" rows="10"></textarea> <%= image_submit_tag 'danbo.png',class: 'send' %> <% end %>

submitを押すとrouting errorが起きます。

Prefix Verb URI Pattern Controller#Action root GET / page#index uno_page GET /page/:id/uno(.:format) page#uno due_page GET /page/:id/due(.:format) page#due tre_page GET /page/:id/tre(.:format) page#tre quattro_page GET /page/:id/quattro(.:format) page#quattro page_index GET /page(.:format) page#index page GET /page/:id(.:format) page#show

formあたりの理解が浅いのでよろしくお願いします。

とにかく、まずは投稿できるようにしたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これをroutes.rbに記述したらうまくいきませんか。

Ruby

1post 'page/:id', to: : '"任意のコントローラ"#"任意のアクション"'

Ruby

1post 'page/:id', to: 'page#display'

URLをpage/1のような形でサブミットすれば
pageコントローラーのdisplayメソッドに、
paramsにidをキーに持つvalueが1の状態で遷移します。
(他には、キーがnameとimageに対しての値も入っています)

追記
routes.rbの側しか記述していなかったのでview側を追記します。

Ruby

1<%= form_tag('/page/'<<"#{@page.id}",method: :post) do %>

のように無理やりパスを作ることや

<%= form_tag({controller:"page",action:"display",id:@page.id},method: :post) do %>

コントローラ、アクション、Routingに該当するキーの値を割り当てることでも送信可能です。

投稿2019/03/06 12:29

編集2019/03/06 13:57
ReiLeiLei1025

総合スコア236

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dossy

2019/03/09 05:11

上記で、動きました。ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問