2

ここではRailsは初めてなので、これが簡単でしたらすみません。深く掘り下げる前に知りたい答えを見つけるのに苦労しています。

私が構築しようとしているアプリには、「表示」ビューと「編集」ビューの違いはありません。ほとんどの場合、エントリのリスト (インデックス ビュー) が表示され、クリックするだけで編集ビューに移動できます。「表示」ビューは必要ありません。

アプリの大部分はこのようになります。ただし、「表​​示」ビューが必要なセクションがまだいくつかあります。

このようなルーティング構造を設定することは可能ですか?

4

3 に答える 3

3

はい、常に 7 つのアクションをすべて使用する必要はありません。

ルーティングの例:

resources :users, except: :show

コントローラ:

def edit
  @user = User.find(params[:id])
end

def update
  @user = User.find(params[:id])
  if @user.update_attributes(params[:user])
    redirect_to edit_user_path(@user)
  else
  ...
  end
end

フォームを通常どおりに編集ビューに追加し、ショー ビューに追加します。

于 2013-02-12T06:08:18.090 に答える
3

表示ビューが必要ない場合は、次のようにリソース ルートにroutes.rbそれを含めないように単純に指示できます。

resources :users, :except => :show

たとえば、編集と表示の両方に同じビューを使用する場合は、showアクションで次のようにすることができます。

def show
  @user = User.find(params[:id])
  render :action => 'edit'
end

これはedit.html.erbshow アクションがヒットしたときにファイルを使用しますが、私の意見では、使用する予定のビューを選択し、routes.rb.

単純に 2 つのビュー間で多くのビュー コードを共有したいが、それらを区別したい場合は、共有コードにパーシャルを使用してください。

于 2013-02-12T06:08:40.303 に答える
1

はい - フォームのパーシャルを表示ページに追加するだけです。これはかなり一般的です。

于 2013-02-12T06:03:35.767 に答える