とRailslink_to
の主な違いについて混乱しています。誰でも説明してください。redirect_to
render
10 に答える
link_to はビューで使用され、リンクの html コードを生成します
<%= link_to "Google", "http://google.com" %>
これにより、ビューに次の html が生成されます
<a href="http://google.com">Google</a>
redirect_to と render は、リクエストに応答するためにコントローラーで使用されます。redirect_to は、コントローラーに追加した場合、リクエストを新しい URL にリダイレクトするだけです。
redirect_to "http://google.com"
あなたのページにアクセスする人は誰でも実質的に Google にリダイレクトされます
render はさまざまな方法で使用できますが、主に html ビューをレンダリングするために使用されます。
render "article/show"
これにより、ビュー「app/views/article/show.html.erb」がレンダリングされます
次のリンクでは、redirect_to と render メソッドについて詳しく説明してい ます http://guides.rubyonrails.org/layouts_and_rendering.html
ドキュメントから:
ビューのレンダリングとリクエストのリダイレクトについて
. . . render は、レスポンスの構築に使用するビュー (または他のアセット) を Rails に伝えます。redirect_to メソッドはまったく異なることを行います。別の URL に対して新しいリクエストを送信するようにブラウザに指示します。
ビューのレンダリングについて
. . . render :action は、ターゲット action でコードを実行しません。. .
リクエストのリダイレクトについて
. . . コードは実行を停止し、ブラウザへの新しいリクエストを待ちます。たまたま、HTTP 302 ステータス コードを送り返すことで、ブラウザが次にどのようなリクエストを行うべきかをブラウザに通知しただけです。
基本的:
link_toは、ビュー ( .html.erbファイル)で通常使用される URL を生成するためのヘルパー メソッドです。
renderは、次のコントローラー アクションに (たとえばフォームから) データを渡さずにビューをレンダリングするようコントローラーに指示します。
redirect_toは 302 ページ リダイレクトを実行し、(たとえばフォームから) データを Web アプリのコントローラー アクションまたは外部アプリ (例: Google、Facebook、気に入った Web 記事など) に渡します。
Alink_to
は Rails 内のフォームで使用され、html 内でリンク要素を作成するためのヘルパーです。他の 2 つはフォームでは使用されませんが、コントローラーで使用されます。
コントローラー メソッドがrender
そのページにリンクされている場合は、そのページです。たとえば、'new' を呼び出すと、'new item' ページが表示されます。彼らは、たった今行われた要求を満たします。
redirect
まさにそのために使用されます-リダイレクト。たとえば、ログインが必要なページにアクセスしようとすると、ユーザーはログイン ページにリダイレクトされます。したがって、リダイレクトは基本的に新しいリクエストを生成します。
link_to は、HTML に表示される特定の URL へのハイパーリンクを作成します。
特定のオプションに応じて、redirect_to がリンク先を決定します。たとえば、誰かがユーザーとしてログオンしている場合、そのユーザーの設定ページを表示したり、ホームページにリダイレクトしたりできます。
レンダリングは、レンダリングされたファイルを開き、そのコンテンツを取得して既存のファイルに貼り付けてから、チャンク全体を受信者に送信します。
私が正しいことを願っています。
Railsの公式ガイドから:
これまで見てきたように、render は Rails に応答の構築に使用するビュー (または他のアセット) を伝えます。redirect_to メソッドは、まったく異なることを行います。別の URL に対して新しいリクエストを送信するようにブラウザに指示します。
link_to は、標準の html anchor=a リンクを出力します(link_to ドキュメント)
redirect_to は、更新や削除などのページ応答によく使用されます。指定したパラメーターを受け取り、ページを適切に誘導します。
(redirect_to ドキュメント)
render は、パーシャルをロードするか、特定の .erb ファイルを他のファイルにロードするために使用されます。(render ドキュメント)このRails ガイドには、render と redirect_to を説明する
例がたくさんあります。link_to は render や redirect_to とはかなり異なります
ここで本当に簡単な説明を見つけました:
初心者に似ているように見えるかもしれませんが、大きく異なります。Render は、コントローラー アクションで定義された変数へのアクセスを失うことなく、どのビューまたはアセットをユーザーに表示するかを Rails に指示します。リダイレクトは異なります。redirect_to メソッドは、別の URL にリクエストを送信するようブラウザに指示します。
そして、基本的にRails docsとは異なる言葉で同じこと:
render と redirect_to には重要な違いがあります。render は Rails にどのビューを使用すべきかを伝えますが (既に送信したものと同じパラメーターを使用します)、redirect_to はブラウザーに新しいリクエストを送信します。