首页 > 解决方案 > 如何通过单击视图上的按钮来运行我的方法?

问题描述

我有一个方法:

def add_to_favorite(id)
    current_user.update(favorite_photos: current_user.favorite_photos + " " + id)
end

此方法在字符串 current_user.fafavorite_photos 的末尾添加一些信息。

如何通过单击视图中的按钮或链接来运行此方法?没有 JS,只使用 Ruby on Rails。谢谢。

标签: ruby-on-railsruby-on-rails-4ruby-on-rails-5

解决方案


如果您想使用链接来调用操作。

# controller
def add_to_favorite(id)
    current_user.update(favorite_photos: current_user.favorite_photos + " " + id)
end

# routes.rb
put 'favorites/:id/add_to_favorite'

# view
<%= link_to 'Add_Favorite', add_to_favorite_path(@favorite), method: :put %>

如果你想要一个按钮来做到这一点,那么

<%= form_tag add_to_favorite_path, method: :put do %>
  <%= submit_tag 'Add_To_Favorite' %>
<% end %>

推荐阅读