Ruby on RailsでDataBaseの一部を指定してUpdateするフォームの作成方法について質問させていただきます。
具体的には、
・変更したいカラムをブラウザ側から選択する方法
・選択した3つの項目結果をpostして、その部分だけをupdateする方法
が知りたいと思っていますが、以下の実現したいことが可能になるのであればどのような方法でも構いませんので、ご教示お願い致します。
更新したいtableの構造は以下の様になっております。
モデル名:User
カラム名:id, user_name, sex, age, place...など10以上のカラムがあります
実現したいことは、
ブラウザ側からの操作で
① ユーザー(user_name)を選択
② そのユーザーのどのカラムを変更したいか選択(sex, age, place...など10以上のカラムから)
③ 選択したカラムについてどう変えるかそのカラムに対応する値を選択
④ ①〜③の結果を出力(POST)してデータベースを更新
viewについては以下のような所まで作成しておりますが、カラムを選択する方法が見つからず、そこで止まっております。
<div> <%= form_for @user, :url => {:action => 'update'} do |f| %> <%# ↓①変更したいuser_nameを選択 %> <%= f.label :user_name %> <%= f.collection_select :user_name, User.all, :user_name, :user_name %> <%# ↓②選択したuser_nameの、変更したいカラムを選択 f.collection_selectではカラム選択はできない?? %> <%# ↓③選択したuser_nameのカラムをどのような値に変更したいか選択 %> <%= f.label :??? %> <%= f.collection_select :???, User.all, #②で選択したカラム, #②で選択したカラムに対応する値 %> <%# ↓④選択した結果をsubmit %> <%= f.submit "Save changes"%> <% end %> </div>
コントローラーの方は以下のように作っています。updateメソッドについてはまだ手を付けていません。
#今回の要件に必要となるedit, updateメソッドだけ載せています class UserController < ApplicationController def edit @user = User.new #どのユーザーに対しても変更できるよう、あえてnewとしてみました。 end def updated end end
参考にできるURLや、ネット検索に適した単語などだけでも教えていただければ幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/09 02:44