0

こんにちは、Rails アプリケーションに次の問題があります。

ユーザーと情報という 2 つのモデルがあり、ユーザーはこの URL を使用して自分の情報を作成します。

ユーザー/ID/情報/新しい

この URL を使用して彼の情報を編集します。

ユーザー/ID/情報/ID/編集

次の場合の問題は、ユーザーが自分の情報を作成した後、URL にアクセスした場合です。

ユーザー/ID/情報/新しい

レコードはデータベースから削除され、ユーザーは新しいレコードの作成を許可されます。ユーザーは 1 つのユーザー情報しか作成できず、自分のレコードしか編集できないため、これは完全に間違っています。

ユーザーが情報テーブルにレコードを持っている場合、ユーザーが新しいアクション URL に移動することを拒否するにはどうすればよいですか。

前もって感謝します。

4

1 に答える 1

0

アクション new に before フィルターを追加し、そのフィルター内でユーザー情報が存在するかどうかを確認します

UserInformationsController
  before_filter :require_no_user_information, :only => :new

  def require_no_user_information
    if UserInformation.exists?(:user_id => params[:id])
      flash[:notice] = 'The user information already exists'
      redirect_to edit_user_information_path params[:id]
      false
    end
  end
end

ユーザー情報が存在する場合、フィルターはリダイレクトし、フラッシュ メッセージで false を返します。コードは例です。モデルはわかりません。

于 2012-11-18T02:04:31.670 に答える