0

(多数の画像の中から) 画像をクリックし、クリックした画像に基づいてプロファイル テーブルを更新できるようにする必要があります。

私のビューの画像のリスト:

 <% @pages_selection.each do |pages_selection| %>
    <img> 
      <%= link_to image_tag(pages_selection.page_picture, '#') %>
    </img>
 <% end %>

次に、save_new_scores_to_profile という名前のメソッドをコントローラーに用意しました。このメソッドは、画像のデータを平均化し、プロファイル値を更新します。

link_to (画像) がクリックされたときにコントローラ メソッドを呼び出すにはどうすればよいですか? このような利用可能なものはありますか?

if link_to clicked
   perform_controller_or_helper_method
end

ユーザーは複数の画像を選択する必要があるため、画像をクリックした後もページにとどまるようにします (そのため、「#」に向けられたリンクを用意しています。それが役立つ場合は、ページの最後に送信ボタンもあります。

私は link_to 以外のものを使用することにオープンです。

編集:

ルートで今いる場所はここです

 resources :preferences do
   member do
     get 'save_new_scores_to_profile'
     get 'checked_average_with_profile'
   end
 end

とビュー:

<% @pages_selection.each do |pages_selection| %>
    <img> 
      <%= link_to image_tag(pages_selection.page_picture, :controller =>      
          :checked_average_with_profile, :action => :save_new_scores_to_profile, :image_id 
          => pages_selection.id) %>
    </img>
<% end %>

コントローラーに関数checked_average_with_profileとsave_new_scores_to_profileがあり、機能することがわかっています(ヘルパー関数でテストした後)。

4

1 に答える 1

1
link_to image_tag(pages_selection.page_picture, :controller => :my_controller, :action => :save_new_scores_to_profile, :image_id => pages_selection.page_picture.id )

my_controller の代わりに、コントローラーの名前を入力します。:image_id を使用すると、次のような params ハッシュを使用してコントローラー アクションで参照できるパラメーターを渡しましたparams[:image_id]

そのコントローラーアクションで(またはヘルパーメソッドの追加呼び出しで)すべての作業を行い、そのimage_idを持つ画像を見つけてredirect_toを作成します@picture_with_that_id

于 2013-03-08T01:39:55.253 に答える