1

パブリファイが 2 つの記事をマージできるようにする機能を実装しています。管理ページで、次のフォームを作成しました (これが私が求めているものに対して正しいかどうかはわかりません)。これにより、最終的に別の記事の ID を入力して、表示中の現在の記事とマージできるようになります (コメントは保持する必要があります)。ただし、作成者は 1 人のみにする必要があります)。

このフォームは管理者のみが表示できるはずですが、このロジックはまだ実装していません。

<%= form_tag({:controller => "admin/content", :action => "merge"}, :method => "put", :class => 'article') do %>
  <%= label_tag(:merge_with, "Article ID") %>
  <%= text_field_tag(:merge_with) %>
  <%= submit_tag("Merge") %>
<% end %>

また、admin/content_controller.rb に次のメソッドを作成しました。

def merge
  @current_article = Article.find(params[:id])
  #(this variable should grab the article ID from the form) @input_article =
  @merged_article = @current_article + @input_article
  return @merged_article  
end

これに関する問題は、フォームから入力された記事 ID を取得してコントローラーで使用する方法がわからないことです。

4

2 に答える 2

1

params[:merge_with] の params ハッシュにある必要があります。

送信したフォームからアクセスしたいフィールドが何であれ、キー値がフォームの入力フィールドの ID である params ハッシュに表示されます。

編集:

そこにあるコードに基づいて、コントローラーのマージメソッドを呼び出すと、params[:id] 値も nil になります。これは、URI が実際に「admin/content/merge」である必要がある場合に「admin/content/merge」になるためです。 /コンテンツ/マージ/:id'.

于 2012-11-19T06:07:39.903 に答える
0

記事のマージ フォームは記事の編集ページにあるため、URI には編集中の現在の記事の ID が既に含まれているはずです。

したがって、このように params ハッシュから取得できますparams[:id]

于 2012-11-24T18:35:42.300 に答える