1

nosql データベースを使用して Rails 3 でアプリケーションを開発しています。twitter や github に似た「フォロー」機能を追加しようとしています。

マークアップに関しては、これを行うには 3 つの方法があると判断しました。

1) 通常のアンカーを使用します。(Githubはこの方法を使用しています)

<a href="/users/follow?target=Joe">Follow</a>

2) ボタンを使用します。(Twitterはこの方法を使用しています)

<button href="/friendships/create/">Follow</button>

3) 送信ボタンのあるフォームを使用します。(私にはいくつかの利点がありますが、まだ誰もそれを行っているのを見たことがありません。)

<form method="post" id="connection_new" class="connection_new" action="/users/follow">
<input type="hidden" value="60d7b563355243796dd8496e17d36329" name="target" id="target">
<input type="submit" value="Follow" name="commit" id="connection_submit">
</form> 

ユーザー名ではなくデータベースに user_id を保存したいので、オプション 1 と 2 ではデータベース クエリを実行して実際の user_id を取得する必要がありますが、オプション 3 では user_id を非表示のフォーム フィールドに保存できるため、データベース検索を行う必要はありません。フォーム送信時に params ハッシュから ID を取得できます。

これらの各方法を正常に機能させましたが、これを行うための最良の方法を知りたいです。どちらの方法がよりセマンティックで安全で、スパイダーなどに適していますか...? twitter と github の両方がこれを行うためにフォームを使用しない理由はありますか?

任意のガイダンスをいただければ幸いです。ユーザーのIDを取得するためにデータベースにクエリを実行する必要がないため、フォームメソッドの使用に傾いていますが、大物がアンカーまたはボタンを使用しているだけの理由があるのではないかと心配しています。

私は初心者なので、何かが完全に欠けている場合は安心してください。ありがとう!

4

1 に答える 1

1

それは本当に個人的な好みに基づいています。シンプルなアンカー タグは素晴らしく簡単で、明確な意図を示し、素晴らしく簡潔です。Javascript を使用して AJAX ポスト リクエストを作成するだけで、すべてをすばやく実行できます。データベース操作は問題ありません。最終的には遅すぎるとは思いますが(私はそれを疑っていますが)、時期尚早の最適化を行っている可能性が高いと思います。

于 2010-05-07T03:45:31.957 に答える