单击图片并更新轨道上的数据库行

时间:2013-03-08 00:59:27

标签: ruby-on-rails ruby-on-rails-3 image helper link-to

我需要能够点击图像(从一堆图像中)并根据点击的图像更新个人资料表。

我视图中的图片列表:

 <% @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,我知道工作(在使用辅助函数测试之后)。

1 个答案:

答案 0 :(得分: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 )

ins_ of my_controller输入控制器的名称。 使用:image_id,您已经传递了一个参数,您可以在控制器操作中使用参数哈希来引用该参数:params[:image_id]

在该控制器操作中执行所有工作(或使用辅助方法的其他调用), 找到具有该image_id的图片并制作redirect_to @picture_with_that_id