1

モデル (この場合はBook ) の例を取り上げ、そのモデルの特定のインスタンスを ID でレンダリングしようとしています。

モデルは基本的な足場で生成されたモデルです - 通常のshow方法です。

def show
    @book = Book.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @book }
    end
  end

ビュー内にこのインスタンスを埋め込むことを検討しています:

<div class="tab-pane active" id="tab1">
    <%= render :template "books/show", :book => 1 %>
</div>

ここで私が間違っていることがあります、私は言うことができます。しかし、ここからどこに進むべきかわかりません!どんな助けでも本当に感謝しています。どうにかして書籍 ID を渡す必要があることはわかっていますが、その方法がわかりません。ありがとう!

4

3 に答える 3

3

<%= render :template "books/show", :book => 1 %>パーシャルのみをレンダリングし、ページをロードしません。たとえば、iframe から
ルートを呼び出す必要があります。"books/show/#{book_id}"

于 2012-05-14T15:50:53.480 に答える
2

Maybe?

<div class="tab-pane active" id="tab1">
  <%= render 'books/show', book: @book %>
</div>
于 2012-05-14T15:54:45.427 に答える
1

コントローラーで作成した変数 @book は、テンプレートに自動的に表示されます。したがって、テンプレート show.html.erb が適切な場所に配置されている場合、

<%= @book.title %>

テキストをレンダリングする必要があります (Book にはここに属性 title があると仮定します)。

あなたが提示したhtmlがどこにあるかわかりません。実際にそこからそのファイルを参照するため、show.html.erb では意味がありません。本へのリンクをレンダリングしたい場合は、次のようにする必要があります

<%= link_to 'Link text', book_path(1) %>
于 2012-05-14T15:52:41.427 に答える