我试图在表格中创建一行链接到编辑页面.我知道链接正在创建中,因为我可以打印出来.我很接近,但错过了一些重要的事情.我要做什么改变才能使链接正常工作?

<h1>Scouts</h1>
<p><%= button_to "Add a new Scout", new_scout_path, :method => :get %></p>
<div class="message-board">
  <table>
    <tr>
      <th>Name</th>
      <th>Rank</th>
      <th>Advancement Date</th>
      <th>Age</th>
    </tr>  

<% @scouts.each do |scout| %>
    <tr <% link_to edit_scout_path(scout) %> >
      <td><%= scout.name %></td>
      <td><%= scout.rank %></td>
      <td><%= scout.advancement %></td>
      <td><%= scout.age %></td>
    </tr>
<% end %>
  </table>
</div>

推荐答案

正如罗宾所说,这是无效的HTML.你可能不该这么做.

我个人会使用jQuery在tr上设置一个onclick事件.tr元素如下所示:

<tr data-link="<%= edit_scout_path(scout) %>">
   ...
</tr>

然后,相关的JavaScript(放在app/assets/javascripts/scouts.js这样的文件中)会是这样的:

$("tr[data-link]").click(function() {
  window.location = $(this).data("link")
})

这将使所有具有data-link属性的tr个元素都以我所能想到的最不显眼的方式充当URL.

Ruby-on-rails相关问答推荐

Rails 7.1.3如何在生产环境中查看堆栈跟踪

`heroku Open`和`heroku run rake db:Migrate`不工作(";没有这样的文件或目录";)

使用Rails和RSpec,有没有办法查看操作真正将您带到哪个页面?

发送不调用类或模块中的私有方法

我如何在不在 gemfile 中的 rake 任务中要求 gem?

当我必须更改 rspec 中的方法时,如何检测时间?

我真正运行的是哪个 Ruby 版本?

如何获取 Ruby on Rails 生成的表单元素 id 以供 JavaScript 参考?

如何更改 Heroku 应用程序的 DATABASE_URL

Rails 4,使用 ActiveRecord 的原始查询

使用 ActiveRecord 3 / Arel 查找单个记录的最佳方法?

水豚 click_link 与 :href 匹配

在 Rails 4 中检测用户代理 - 读取 HTTP 标头

如何验证 ActiveRecord 中邮箱字段的格式?

设计自定义路由和登录页面

控制器 helper_method

如何在同一个 Rails 控制器操作中处理多个 HTTP 方法

如何在 Ruby 中搜索数组?

如何在 Rails 迁移中判断数据库类型?

Rails:弃用警告:您没有设置 config.secret_key_base