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

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

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

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

Ruby on Rails

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

Q&A

0回答

246閲覧

htmlのformをrubyで書くにはどのようにしたら良いのでしょうか?

sn.jr

総合スコア53

Ruby

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

Ruby on Rails

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

1グッド

1クリップ

投稿2019/11/21 11:34

編集2019/11/21 13:17

前提・実現したいこと

現在bootstrapを用いて簡単な自己紹介ができる機能を作ろうとしています。

今まではform_tagなどを用いてフォームを作っていたのですが、bootstrapは<form>と記載されています。

ここで私(初学者)が抱えている疑問は以下の点です。

<form>ははどのアクションを呼ぶのか
例えば下記の場合、コントローラーにあるアップデートアクションを呼ぶと思います。しかし<form>だけだとどうなるのか、また指定したアクションをbootstrapで呼びたい時どうすれば良いのか。

<%=form_tag("/users/#{@user.id}/update",{multipart: true}) do%>
def update @user = User.find_by(id: params[:id]) @user.name = params[:name] @user.intro = params[:intro] if params[:image] @user.image_name = "#{@user.id}.jpg" image = params[:image] File.binwrite("public/user_images/#{@user.image_name}", image.read) end

formだけ↓

<form> <div class="form-row"> <% @users.each do |user| %> <div class="form-group col-md-6"> <label for="inputEmail4">Name</label> <input type="name" class="form-control" id="inputEmail4" placeholder="Name" value="<%=user.name %>"> </div> <div class="form-group col-md-6"> <label for="inputEmail4">Email</label> <input type="email" class="form-control" id="inputEmail4" placeholder="Email" value="<%=user.email %>"> </div> <div class="form-group col-md-6"> <label for="inputPassword4">Password</label> <input type="password" class="form-control" id="inputPassword4" placeholder="Password" > </div> </div> <div class="form-group"> <label for="inputAddress">Photo</label> <input type="file" class="form-control" id="inputAddress" placeholder="1234 Main St" value="<%=user.image %>"> </div> <button type="submit" class="btn btn-primary">Sign in</button> </form> <% end %>

補足情報(FW/ツールのバージョンなど)

scaffoldとgem'devise'を使っています。

routes

1Rails.application.routes.draw do 2 devise_for :users 3 resources :pages 4 root "pages#index" 5 # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html 6 get "/intro" => "pages#intro" 7end
DrqYuto👍を押しています

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

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

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

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

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

m.ts10806

2019/11/21 11:54

1回クライアントサイドであるBootStrapとサーバーサイドであるRubyは切り離して考えた方が良いように思います。あくまでBootStrapはレイアウトだけのものですし、フォーム送信や画像投稿云々は全く影響がない範囲です。 複数問題が発生しているのでしたら一度で全て解決しようとせず1つずつ対応された方が良いと思いますよ。 優先度や重要度は決めてもらう必要がありますが、1つの質問で方向性の違う問題を全て解決しようというのは余計に混乱する元となります。 ので、1つに絞ってください。
sn.jr

2019/11/21 12:03

承知しました!アドバイスありがとうございます。訂正しますので、もしよろしければ訂正後再度確認いただけると幸いです。
m.ts10806

2019/11/21 12:59

あぁBootstrapは外したんですね。ならタイトルも変更しておいてください。 Rubyがわかるわけじゃないのでこちらに書きますが、formはあくまでhtmlの仕組みなので何も呼び出しません。 action属性に指定された先にform内の情報を送信はしますが受け側はサーバーサイドの仕事です。 formのaction属性が未指定の場合は自身(のURL)に対して送信します。
sn.jr

2019/11/21 13:16

タイトル変更します!bootstrapは他の質問に記載しました!やはりbootstrapに与えられたformだけではDBとはやり取りできませんよね。一応その認識でいたため form_with などでモデルを指定したるしたのですがいまいちうまくいかなくて
m.ts10806

2019/11/21 13:19

ん?だからBootstrapは何も関係ありません。単なるレイアウトです。 だから別に何に与えられる関係なくformはformの仕事をします。 submitされればactionに指定されたURLにフォーム内容を送信するだけです。 DB云々は送信された情報を受け取るサーバーサイドの出来事なのでこれも別問題です。 「リクエストとレスポンス」の基本概念を学ばれたほうが混乱しないと思います。
sn.jr

2019/11/21 13:28

bootstrapがサーバーサイドに影響しないこと、つまりbootstrapはただのレイアウトであることはわかっているのですが、質問の書き方が下手でわかりづらくて申し訳ございません。確かにこの質問はいくつかの質問が混在しておりわかりづらいですね。ご指摘していただいて整理することができました。また訂正いたしますので、ご確認いただけると幸いです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問