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

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

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

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

Ruby on Rails

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

Q&A

2回答

2209閲覧

Railsのフォーム共通化

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2015/12/05 09:47

フォームを共通化したいのですが、submitの文字の内容を変えたいです。
共通化した場合、Railsによって自動で文字が入るかと思います。

共通化しつつ、変更したい場合にはどうすれば良いのでしょうか?

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

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

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

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

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

guest

回答2

0

幾つか方法はあると思います。

↑では、 form の中のフィールドの部分をパーシャルファイルにして、
<%= form_for(@user) do |f| %>
<%= render 'fields', f: f %>
<%= f.submit "Create my account" %>
<% end %>
のように書く例が示されています。
この場合は、個々の場所で submit ボタンの文字列を記載することになります。

↑では form 全体をパーシャルファイルにして、変更させる部分を erb 中で if 文で切り分けています。

サブミットの文字列を切り替えたいだけなら、form 全体をパーシャルファイルにして、submit の表示文字列部を変数にしておけばよいと思います。
呼び出す前にその変数の値を設定すればよいです。

投稿2015/12/05 11:08

katoy

総合スコア22324

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

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

0

作成されたフォームを呼び出す、ヘルパー関数を作成するとよいかもしれません

準備

bash

1mkdir making_common_form;cd making_common_form 2rails new . 3rails generate scaffold user name:string 4rake db:migrate

コードを書く

ヘルパー関数の作成

app/helpers/users_helper.rb :

ruby

1module UsersHelper 2 def render_common_form(submit_value = 'submit') 3 form_for :user do |f| 4 f.submit(submit_value) 5 end 6 end 7end

ビューから呼び出してみる

app/views/users/index.html.slim :

slim

1/ foo, bar それぞれの値が設定されたサブミットボタンが表示される 2= render_common_form('foo') 3= render_common_form('bar')

以上、簡単に書いてみましたが、何か参考になれば幸いです

Link

投稿2015/12/05 10:30

gouf

総合スコア2321

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

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

退会済みユーザー

退会済みユーザー

2015/12/05 10:38 編集

ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問