Ruby Rails 为前端添加收藏夹按钮的正确方法
Ruby on Rails proper way to add a favorite button for front end
到目前为止,我有两个 tables 用户和公司。用户可以收藏很多公司。我建立了所有后端代码来添加收藏夹(连接 table 具有多对多关系)我还有一个通用设置来添加收藏夹。
不过我需要一些前端方面的帮助。
到目前为止,我拥有的是一个搜索页面,用户可以在其中查询公司代码以获取公司。我显示如下
<% if @results %>
<h4>Search results for <%= @symbol %></h4>
<table>
<tr>
<th>ID</th>
<th>Symbol</th>
<th>Name</th>
</tr>
<% @results.each do |res| %>
<tr>
<td><%= res.id %></td>
<td><%= res.symbol %></td>
<td><%= res.name %></td>
<td><%= link_to "Favorite", create_favorite_path(current_user.id, res.id), method: :post, :remote => true %></td>
</tr>
<% end %>
</table>
<% end %>
现在我用
实现了 "favorite button"
<td><%= link_to "Favorite", create_favorite_path(current_user.id, res.id), method: :post, :remote => true %></td>
看起来很乱,我觉得这样不对。我还想添加更多功能
- 我想知道post方法是否成功
- 基于 post,我希望能够将按钮文本更改为类似 "saved"
的内容
- 稍后将 link 更改为具有星形按钮图标
我很乐意提出改进和正确执行的建议
我更喜欢使用 front-end 框架来处理此类事情。它们允许组件更加动态地交互。
re: 我想知道 post 方法是否成功
在没有 front-end 框架的情况下,您可以在 favorites_controller 中捕获失败的保存并向页面添加一个 flash[:error]。
flash[:errors] = @favorite.errors.full_message unless @favorite.save!
回复:基于 post,我希望能够将按钮文本更改为类似 "saved" 的内容
您可以使用 jQuery 来更改按钮 CSS 点击最喜欢的按钮。
<% if @results.favorited? %>
# render button with favorited class (with star)
<% else %>
# render button without favorited class (without star)
<% end %>
到目前为止,我有两个 tables 用户和公司。用户可以收藏很多公司。我建立了所有后端代码来添加收藏夹(连接 table 具有多对多关系)我还有一个通用设置来添加收藏夹。
不过我需要一些前端方面的帮助。
到目前为止,我拥有的是一个搜索页面,用户可以在其中查询公司代码以获取公司。我显示如下
<% if @results %>
<h4>Search results for <%= @symbol %></h4>
<table>
<tr>
<th>ID</th>
<th>Symbol</th>
<th>Name</th>
</tr>
<% @results.each do |res| %>
<tr>
<td><%= res.id %></td>
<td><%= res.symbol %></td>
<td><%= res.name %></td>
<td><%= link_to "Favorite", create_favorite_path(current_user.id, res.id), method: :post, :remote => true %></td>
</tr>
<% end %>
</table>
<% end %>
现在我用
实现了 "favorite button"<td><%= link_to "Favorite", create_favorite_path(current_user.id, res.id), method: :post, :remote => true %></td>
看起来很乱,我觉得这样不对。我还想添加更多功能
- 我想知道post方法是否成功
- 基于 post,我希望能够将按钮文本更改为类似 "saved" 的内容
- 稍后将 link 更改为具有星形按钮图标
我很乐意提出改进和正确执行的建议
我更喜欢使用 front-end 框架来处理此类事情。它们允许组件更加动态地交互。
re: 我想知道 post 方法是否成功 在没有 front-end 框架的情况下,您可以在 favorites_controller 中捕获失败的保存并向页面添加一个 flash[:error]。
flash[:errors] = @favorite.errors.full_message unless @favorite.save!
回复:基于 post,我希望能够将按钮文本更改为类似 "saved" 的内容 您可以使用 jQuery 来更改按钮 CSS 点击最喜欢的按钮。
<% if @results.favorited? %>
# render button with favorited class (with star)
<% else %>
# render button without favorited class (without star)
<% end %>