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

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

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

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

1289閲覧

Ruby on Railsのviewでユーザー名を選択できるようにし、選択した後にそのユーザーの編集ページに飛ぶ方法

AudioStakes

総合スコア41

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/01/19 01:51

Ruby on Railsのviewでユーザー名を選択できるようにし、選択した後にそのユーザーの編集ページに飛ぶようにしたいです。
やりたいことは
① viewでユーザー名一覧からユーザー名(例:idが1のユーザー)を選択
① 選択した結果をPOST?
③ URL"http://~/1/edit"(idが1のユーザーの編集ページ)へ移動
ということが行いたいです

知りたいことは、form_forもしくはform_tagを利用してどのようなコードを書けば良いのか、ということです。
実際のコードの例を書いてくださると大変有り難いです。

現在以下のようなコードを作っています。
view(indexページ)

<%= form_for @user ここになにを入れれば良いのでしょう? do |f| %> <%= f.label "ユーザー名" %> <%= f.collection_select :user_name, User.all, :id, :user_name %> <%= f.submit "ユーザー情報を編集" %> <% end %>

controller

def index @user = User.new end def edit @user = User.find(params[:id]) end

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

form_forではなくて、link_to user.name, '/users/1/edit'
ではダメなのでしょうか??

その先のeditページではpostすると思いますが!

投稿2016/01/19 04:06

MasakazuFukami

総合スコア1869

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

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

AudioStakes

2016/01/19 06:55

回答ありがとうございます! たしかに、link_to user.name, '/users/1/edit' でも、任意のユーザーの編集画面に行くことは可能です。 が、それをform_forもしくはform_tagを用いて実現したいと考えています。
MasakazuFukami

2016/01/19 07:03 編集

あ、なるほど selectboxで選択したユーザーの編集画面に移動したいからform_tagを使用したいというわけですね。 ちょっと具体的なコードをさくっと書けないのですが、 <%= form_for @user, :url => {:action => '/users/move_edit'} do |f| %> <% end %> みたいにroutingして route.rbで /users/move_edit を users#move_editみたいに指定して users_controllerで def move_edit @user = User.find(params[:id]) redirect_to "/users/#{@user.id}/edit" end などで移動するのはどうでしょう??
MasakazuFukami

2016/01/19 07:52

ふと思ったんですけどselectboxでユーザーページに移動したいだけでcontorllerを書くのもどうかと思いました。 jsでやるのもありかと・ $('submitボタン').on('click', function(){ location.href = 'users/' + $('セレクトボックス').val() + '/edit' }) みたいな感じでも!
AudioStakes

2016/01/19 23:23

とても丁寧に説明して頂き、ありがとうございます! Rails用のコードを試したところ、無事に目的を達成することができました! def move_editのように1クッション置くことが必要だったのですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問