私のアプリでは、ユーザーは製品のレビューを書くことができます。ただし、レビューを公開する前に、管理者はレビューを受け入れるか拒否する必要があります (ユーザーがレビューを変更できるようにします)。
検証部分を管理するために、コントローラーvalidate
内にメソッドを作成しました。Reviews
管理者には、新しいレビューの近くに 2 つのボタン (リンク) があります: 承認、拒否。そのボタンは にリダイレクトしvalidate#reviews
、適切なパラメータを送信します: review_id
and admin_action
(受け入れまたは拒否)。
ボタン (リンク) のパスを作成するにはどうすればよいですか?
私は多くの組み合わせを試しlink_to "accept", polymorphic_path([review, :validate => 'accep'])
ましたが、成功しませんでした。URLがどのように見えるべきかを理解するのに苦労しています! もちろん、get 'reviews/validate'
以前にroutes.rbに追加しました。
もしあなたが同じような状況にあったなら、あなたはどうしましたか?ベストプラクティスはありますか?
アップデート
も試しlink_to "Accept", polymorphic_path(:reviews => review, :validate => 'accept')
ましたが、Nil の場所が提供されます。URI を構築できません。
更新 2
レビューの取得、管理者認証のチェックなどの一般的なデータ処理があるため、validate
(2 つのメソッドaccept
とを作成する代わりに) メソッドを使用したいと思います...reject
だから、私のコントローラでは、次のようなものを探しています:
def activate
# Get review, using review_id
# Check in the admin has the right to validate the review
# Execute the correct action: accept or reject.
end
private
def accept
...
end
def reject
...
end
前もって感謝します。