1

これは私の他の質問に多少関連していますが、少し異なります。

そのため、各ページには、タイトルと説明を含む画像を追加するためのフォームを含むモーダル ウィンドウをポップアップ表示する [画像を追加] ボタンがあります。ただし、そのページの page_id を自動的に使用するようにする方法がわかりません。

これまでのフォームは次のとおりです。

<%= form_for @image do |f| %>

  <%= f.label 'Image URL:' %>
  <%= f.text_field :source %>

  <%= f.label :title %>
  <%= f.text_field :title %>

  <%= f.label :description %>
  <%= f.text_field :description %>

  <%= f.submit %>

<% end %>

画像の作成時に image.page_id をそのページの ID に設定する方法はありますか?

4

1 に答える 1

2

ネストされたルートを使用できるため、routes.rb には次のようになります。

resources :pages do
  resources :images
end

次に、追加リンクを作成するための URL ヘルパーがあります。

<%= link_to 'add image', new_page_image_path(@page) %>

params[:page_id] が設定されたコントローラー/pages/:page_id/images/newのアクションにルーティングされるようなパスを作成しますnewImagesController@page.id

ImagesController新しいアクションを次のように拡張します

def new
  @image= Image.new(page_id: params[:page_id])
end

編集中に保持するためにフォームに非表示を配置page_idします。

<%= form_for @image do |f| %>
  <%= f.hidden_field :page_id %>
  ...
  <%= f.submit %>
<% end %>

任意の JS を使用して、リンクを画像フォームを表示するモデル ウィンドウに変換できます。

于 2013-05-28T21:00:03.470 に答える