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 回答