0

RubyとRailsの学習体験として、投票を行ったり、結果を保存したりするためのWebサイトを作成しています。投票プロセスの一環として、ユーザーはいくつかの質問に回答し、それらの質問に回答する必要があります。完了すると、提供した回答(回答タイプ)に基づいた推奨事項のリストを受け取ります。

私の質問には2つの部分があります。一つは、私は正しい道を進んでいると思います。もう1つは、どこから始めればよいのかさえわからず、それが良い考えかどうかもわかりません。

これが私の回答モデルです:

class Answer
  attr_accessor :question_number, :description, :answer
end

質問1

ユーザーがすべての回答を送信すると(セッションストレージに回答を保存している)、検索機能に送られる方法を探していますが、うまくエンコードされています。

それ以外の:

http://localhost:3000/results/search?[biglongstringofdifferentanswers]

私は次のようなものが欲しいです:

http://localhost:3000/results/search/1-answer_2-answer_3-answer

いくつかの検索を行った後、私が達成したいことは#parameterizeメソッドを使用して実行する必要があるようですが、それを正確に行う方法がわかりません。

質問2

私の質問の2番目の部分は、人間が直接読めないように回答をエンコードできますか。人々がお互いの答えを閲覧できないようにするためにこれを行いたいと思います。たとえば、最初の答えは常にその人の一意のIDであり、パラメータを切り替えて古い結果のセットを参照できるようにしたくありません。

だから、私は次のようなものを手に入れたいと思っています:

http://localhost:3000/results/search/798dh832rhhbe89rbfb289f9234972bdbdbbws3

この2番目の質問については、これが良いアイデアかどうかさえわかりません。そのため、この質問についての提案を受け付けています。

私はRubyとRoRを探求/学習し続けているので、これらの質問に関するヘルプとガイダンスに感謝します。

4

1 に答える 1

0

正しければ、ログインシステムはなく、DBに保存した送信済みの回答に、ユーザーのURLを介してアクセスできるようにする必要があります。ユーザーが他のユーザーの回答に移動することを望まないが、URLを取得したユーザーはそれを共有できるとあなたは言いました

私がすることは、POSTメソッドを介して回答を送信することです。そのため、パラメーターのエンコードなどについて心配する必要はありません。Railsを使用すると非常に簡単になります。

生成されたbigintとなるpublic_id列を回答オブジェクトに追加できます。postメソッドの送信後、回答をDBに保存すると、回答のパブリックIDURLへのリダイレクトを返すことができます。

何かのようなもの

def create
  answer = Answer.new(params[:answer])
  if answer.save
    answer.generate_public_id # <= would be nice to add if in the answer model 'after_create' filter probably
    return redirect_to public_id_answer_path
  end
  render :partial => 'error'
end

どう思いますか ?

于 2012-08-08T01:10:47.340 に答える