1

导轨 4.0 红宝石 2.0

我正在尝试创建一个链接,用我已经拥有的数据填写当前页面上的 textarea 字段。

这是我的视图代码(不起作用)

<% if feed_item.in_reply_to %>
<%= link_to "reply", mentions_path(:content => "@#{feed_item.user.username}") %>
<% end %>

我想要的只是@#{feed_item.user.username}进入一个名为的文本区域micropost_content

任何可以为我指明正确方向的帮助或事情都会很棒

- C

编辑:

每个人似乎都对 @ 感到困惑......我之所以把 @ 放在一边是因为我希望它在页面上显示为

@usernmae

由于用户名存储username在数据库中。

这不是因为我试图插入一个“实例变量”:-)

这不能用Javascript完成吗?

这更好地解释了它:

在此处输入图像描述

4

3 回答 3

2

要做的事情和检查(以防万一):

  • 检查mentions_path是否路由到您想要表单的正确控制器和操作
  • @从评估的字符串中删除并检查params[:content]控制器中的值,它应该包含正确的用户名
  • 如果您在视图中使用form_for助手
    • 然后将该内容分配给模型的适当字段,您正在为其构建表单
  • 别的
    • 将该内容分配给实例变量,例如@username然后使用text_area_tag :field_name, @username

好的,如果您在同一页面上需要它,只需执行类似的操作

$(document).ready -> 
  $("#reply_link_id").click ->
    username = $('#username_link_id').html()
    $('#textarea_id').val(username).focus()
    return false
于 2013-08-30T19:10:27.303 回答
2

通过这样做,我得到了我正在寻找的行为

<%= link_to "reply", '#', :onclick => "document.getElementById('micropost_content').value='@#{feed_item.user.username} ';return false;" %>

虽然现在我正在寻找一种将光标放在那里的方法

于 2013-08-30T22:55:54.890 回答
0

在新页面上,您可以检查您传递的值是否存在并添加到您要填充的字段的值中

于 2013-08-30T18:48:18.130 回答