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

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

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

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

Q&A

2回答

482閲覧

Rails 1つのページに2つのform_forを用意したい

a_s_p0309lin

総合スコア20

Ruby on Rails

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

0グッド

0クリップ

投稿2017/06/19 12:13

一つのページに 二つのsubmitボタンをつけたいのですが、local上にて、一つめの送信ボタンを押すと、

param is missing or the value is empty: addfile とエラーを吐かれてしまいます。

二つ目の送信ボタンはエラーも何事もなく 取得できます。何が原因となっているのでしょうか?

class TopController < ApplicationController before_action :move_to_page def index @download = Fileup.all @sen = Monetize.new @content = Addfile.new @data = Monetize.all @rel = Monetize.where(userid: current_user.id) if @rel.count > 0 monetize = @rel.first @chart_data = [["saraly", Monetize.salary ], ["utility", Monetize.utility], ["rent", Monetize.rent], ["transport", Monetize.transport], ["postage", Monetize.postage], ["eat", Monetize.eat], ["daily", Monetize.daily], ["entertainment", Monetize.entertainment], ["investment", Monetize.investment]] end end def made Monetize.create(salary: made_params[:salary], utility: made_params[:utility], userid: current_user.id, rent: made_params[:rent], transport: made_params[:transport], postage: made_params[:postage], eat: made_params[:eat], daily: made_params[:daily], entertainment: made_params[:entertainment], investment: made_params[:investment]) redirect_to action: :index end def create Addfile.create(filedata: create_params[:filedata], username: current_user.fullname, filename: create_params[:filename], userid: current_user.id) redirect_to action: :index end private def create_params params.require(:addfile).permit(:filedata, :filename) end def made_params params.require(:monetize).permit(:salary, :utility, :rent, :transport, :postage, :eat, :daily, :entertainment, :investment) end def move_to_page unless user_signed_in? then redirect_to '/users/sign_in' end end end
<%= form_for @sen, :url => {:action => :made } do |f| %> <h3>月の収入</h3> <%= f.text_field :salary %><em>円</em> <h3>月の支出</h3> <ul> <li> <h4>光熱費</h4> <%= f.text_field :utility %><em>円</em> </li> <li> <h4>家賃</h4> <%= f.text_field :rent %><em>円</em> </li> <li> <h4>交通賃</h4> <%= f.text_field :transport %><em>円</em> </li> <li> <h4>通信賃</h4> <%= f.text_field :postage %><em>円</em> </li> <li> <h4>食賃</h4> <%= f.text_field :eat %><em>円</em> </li> <li> <h4>日用雑貨賃</h4> <%= f.text_field :daily %><em>円</em> </li> <li> <h4>娯楽賃</h4> <%= f.text_field :entertainment %><em>円</em> </li> <li> <h4>投資</h4> <%= f.text_field :investment %><em>円</em> </li> <li> <div class="float-cut"> </div> <div class="action"> <%= f.submit "グラフの表示" %> </div> </li> </ul> <% end %> </div> <div class="graph"> <%= pie_chart @chart_data, height: '550px', width: '550px' %> </div> </div> <div class="download"> <h2>ファイルダウンロード</h2> <table> <tr> <th class="t_top" width="180">ファイル名</th> <td class="t_top">ダウンロードリンク</td> </tr> <% @download.each do |file| %> <tr> <th><%= file.filename %></th> <td><a href="<%= file.filedata %>">ダウンロード</a></td> </tr> <% end %> </table> </div> <div class="file"> <h2>ファイル提出</h2> <div class="file-explain"> <h4>ファイル名は、ファイル名で内容がわかるようにしてください。</h4> </div> <%= form_for @content, :url => {:action => :create} do |f| %> <div class="field"> <%= f.label :ファイル名 %><br> <%= f.text_field :filename %> </div> <div class="field"> <%= f.label :ファイル選択 %> <%= f.file_field :filedata %> </div> <div class="actions"> <%= f.submit "アップロード" %> </div> <% end %> </div>

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

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

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

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

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

guest

回答2

0

form_forをこうするとどうですか?

<%= form_for @sen, url: hoge_fuga_path do |f| %>

投稿2017/06/19 13:31

mbk

総合スコア130

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

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

0

2つのフォームを作るのはどうすか?

<%= form_for @sen, :url => {:action => :action1 } do |f| %> # フォーム1の中身 <% end %> <%= form_for @sen, :url => {:action => :action2 } do |f| %> # フォーム2の中身 <% end %>

投稿2017/06/19 12:46

編集2017/06/19 12:51
mbk

総合スコア130

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

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

a_s_p0309lin

2017/06/19 13:05

ご回答ありがとうございます。 フォームは二つ作ってありますね。ですが、エラーが起きてしまっている状態ですね。
mbk

2017/06/19 13:27

失礼しました。 エラーはcreateアクションが呼ばれているからですよね。 controllerの指定も加えても変わりませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問