我试图实现一个显示引导弹出窗口的按钮,当单击时会显示一个文本字段,用户可以输入要与之共享帖子的人的电子邮件地址。
这里是按钮的代码:
<%= link_to collab_user_stories_path(@post), class: 'btn btn-default', title: 'Enter the email of the person you want to share this with:', 'data-toggle' => 'popover', 'data-trigger' => 'focus', 'data-html' => 'true', 'data-content' => '<%= text_field_tag :user %>' do %>
<span class="glyphicon glyphicon-plus-sign"></span> Collaborate with...
<% end %>
我在'data-content' => '<%= text_field_tag :user %>'
部分收到错误。
它说:&#34;意外的keyword_end,期待&#39;)&#39; &#34;
我已经尝试'data-content' => '#{<%= text_field_tag :user %>}'
并仍然得到同样的错误。
任何人都有任何想法如何做到这一点?
非常感谢您的帮助!
答案 0 :(得分:0)
你的第一行应该是:
<%= link_to collab_user_stories_path(@post),
title: 'Enter the email of the person you want to share this with:',
'data-toggle' => 'popover',
'data-trigger' => 'focus',
'data-html' => 'true',
'data-content' => text_field_tag( :user ),
class: 'btn btn-default', do %>
原样,您正在尝试在erb中嵌入erb标记,而这些标记无法正常工作。
另外,您可以尝试上课:&#39; btn btn-default&#39;,link_to标记中的最终哈希键/值。
答案 1 :(得分:0)
当您添加data-content
时,您已经在使用ruby代码,因此您不需要另外一组<%= %>
,您已经在其中!
你需要做这样的事情:
<%= link_to (...) 'data-content' => text_field_tag(:user) do %>
我相信这应该有用,我过去做过类似的事情
请记住,当您在<%= %>
文件中输入.erb
标记时,您正在严格编写ruby代码。
你不会在ruby中这样做:
{
'data-content' => '<%= my_method(:param) %>'
}
因此,您不应该在模板中的ruby代码中执行此操作。
答案 2 :(得分:0)
<%= link_to collab_user_stories_path(@post), class: 'btn btn-default', title: 'Enter the email of the person you want to share this with:', data: { toggle: "popover", trigger: "focus", html: "true", content: text_field_tag(:user) } do %>
<%= content_tag :span, "Collaborate with...", class: "glyphicon glyphicon-plus-sign" %>
<% end %>
由于您正在使用erb
,因此您不需要重新解析text_field_tag
,而只需将其作为link_to
方法的参数包含在内。您还需要注意data
attribute of link_to
应该作为哈希传递。