我需要能够点击图像(从一堆图像中)并根据点击的图像更新个人资料表。
我视图中的图片列表:
<% @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,我知道工作(在使用辅助函数测试之后)。
答案 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