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

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

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

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

Ruby on Rails 4

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

Q&A

1回答

11162閲覧

ページ遷移時にパラメータを送る際、urlにパラメータの値を隠したい。 inquiry/new?email=hogehoge%40gmail.com&name=hoge

qaz3330

総合スコア113

Ruby

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

Ruby on Rails 4

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

0グッド

0クリップ

投稿2015/11/09 12:43

Webページでお問合せの画面が作っております。
ユーザー登録の機能があるため、そこに登録して頂いた値をパラメータとして渡す機能を実装しました。

遷移前の画面/index.html.slim
= link_to 'お問い合わせ', new_inquiry_path(name: @user.name, email: @user.email)

app/views/inquiry/new.html.slim

= form_for @inquiry, url: { action: 'create' } do |f| .form-group = f.label :name = f.text_field :name, value: params[:name] .form-group = f.label :email = f.text_field :email, value: params[:email] .form-group = f.label :description = f.text_field :description = f.submit '送信する', class: 'btn btn-primary'

そこで質問したいことがあります。

<1点目>
この実装方法では遷移先(お問合せ)のページURLが
inquiry/new?email=hogehoge%40gmail.com&name=hoge
のようになり、メールアドレスや名前がまるわかりになります。

私の感覚では、まずいと思っているのですが、これを何とか隠す方法を教えてほしいです。(そもそもまずくないのかもしれませんが)

<2点目>
今回、link_to で遷移させるとき

name: @user.name, email: @user.email

というようなパラメータの渡し方をしましたが、今後、パラメータの数が多くなった際、一つ一つ設定するのは大変です。

= link_to 'お問い合わせ', new_inquiry_path(params: @user)

みたいな形で、まとめて送り、遷移先で上手いこと展開できないかと考えていたのですが、上手く出来ませんでした。

このようなことはできないのでしょうか?

たくさん質問してしまい申し訳ありません。
よろしくおねがいします!

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

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

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

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

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

guest

回答1

0

Rails単独では対応困難ですが、jQueryを併用すれば可能な様で、jquery.post_link.js というjQueryプラグインも開発されているので、選択肢の一つに加えてみてはいかがでしょうか。

Ruby on Rails でリンクを POST で送信したい、パラメータは URL に含めずにリクエスト本文に含めたい、という方のための jQuery プラグインです。

とのことです。

投稿2015/11/09 23:17

pi-chan

総合スコア5936

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

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

qaz3330

2015/11/10 03:58

ありがとうございます! 参考までにお伺いしたいのですが、URLにパラメータが載っているのは私はダメだと感じているのですが、pi-chanさんはどうお考えでしょうか? セキュリティ上、名前やemailの情報がurlに載るためよくないと考えておりますが、そんなことはないのでしょうか? Rails単独ではそういう仕様のため、他の開発者の方はそのまま使ってたりするのかなと思い・・・
pi-chan

2015/11/10 04:31

「URLにパラメータが載っているのはダメ」かと聞かれれば、パラメータの「種類による」ということだと考えます。 通常、リンクをクリックして遷移させたい先は、例えばブログの特定の記事だったり、ショピングサイトでは個別の商品のページだったりします。 そういうケースで受け渡したいパラメータは、例えば記事IDや商品IDなど元から公開されている情報であり隠す必要がありません。 Getメソッドでのアクセスはそういう用途を念頭に置いたものなので、規約に基づき最低限の設定で迅速にアプリを構築する事を目指したRailsでこの様な制約があることは、むしろ当然な気がします。 恐らくRailsの設計者は、ログイン画面のようにセキュリティ上厳重に管理すべきパラメータを扱う画面はフォーム上に配置したボタンをクリックしてPostメソッドにより画面遷移させる事を想定していただけなのだと思います。 もっとも、仮にPostメソッドで画面遷移した場合でも、重要なパラメータがURL上に表示されないというだけであって、セキュリティ上の全てのリスクが回避できる訳ではなく、リスク回避の為にそれ相応の対応が求められる事には変わりありません。詳しくは、例えば下記をご参照ください。 > http://railsguides.jp/security.html
qaz3330

2015/11/10 09:08

railsガイドのURLおよび解説ありがとうございます。 railsの設計の意図などを考える機会があまりなかったので、これを機に、railsの設計のことやセキュリティー周りのことを勉強していこうと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問