使用 Best In Place gem,我如何允许就地编辑链接?

Posted

技术标签:

【中文标题】使用 Best In Place gem,我如何允许就地编辑链接?【英文标题】:Using Best In Place gem, how do I allow links to be edited in place? 【发布时间】:2012-10-28 01:11:26 【问题描述】:

我有一个名为“item”的对象,它有一个可以链接到任何 URL 的“title”。我使用以下代码允许使用 Best in Place gem 就地编辑标题。编辑部分工作正常,但是当从输入框中移除焦点时,链接丢失。

         <%= best_in_place item, :title, 
                              :display_with => :link_to, 
                              :activator => "#edit-#item.id",
                              :helper_options => item.url  %>

我感觉我没有正确设置“helper_options”的值。

如何编辑上面的代码,以便在用户更改标题后使用更新的文本恢复链接?我在Best in Place github site 或其他任何地方都找不到这样的例子。

【问题讨论】:

【参考方案1】:

迟到的答案,但你永远不知道谁会是类似的东西?对于你的情况,我认为你想要一个块:

<%= link_to(item.url) do %>
   <span><%= best_in_place item, :title, 
     :activator => "#edit-#item.id" %>
   </span> 
<% end %>

这假设您要编辑标题,而不是链接的 URL。

要编辑链接但使用标题作为链接正文,您可以在 display_with 中使用 lambda

= best_in_place item, 
  :url, 
  :display_with => lambda  
    |url| link_to item.title, url
  

那是 haml,我没有测试确切的片段,但在我正在构建的应用程序中也有类似的工作

【讨论】:

以上是关于使用 Best In Place gem,我如何允许就地编辑链接?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 'Best in Place' Gem - Flash 成功消息?

使用 Rails gem 'best_in_place' 进行内联编辑 - 错误:在 textarea 上编辑后新行丢失

显示复选框 best_in_place ruby​​ gem

使用 Rails、jquery 和 best_in_place gem 就地编辑

best_in_place gem 初始化

Rails 4 - best_in_place gem 和多对多关联