【问题标题】:Get href value from <a/> who is store in a variable ERB从存储在变量 ERB 中的 <a/> 获取 href 值
【发布时间】:2023-03-15 17:53:01
【问题描述】:

我的整个代码:

<% query.inline_columns.each do|column| %>
    <% if column.css_classes.to_s != "assigned_to" %>
         <td class="<%= column.css_classes %>"> <%= column_content(column, issue) %> </td>
    <% else %>
         <td class="<%= column.css_classes %>"> <%= test = column_content(column, issue) %> </td>
    <% end %>
<% end %>

我有类似的东西:

test = column_content(column, issue)

当我访问网站时,它给了我类似的信息:

<a class="user active" href="/users/5">Test</a>

我的问题是如何获得 href 的值? 我尝试了 test.href、test.link_to 和 test.link 但不起作用。

当我们拥有 href 之后,是否可以只在 href 中拥有 id ? (在上面的href中是5) 但我不想进入页面并获取 id,我只想拥有它,以便可以在表格中加载用户的图片。

我是 ERB 语言的初学者,谢谢你的帮助!

编辑: 我获取 id 的解决方案:

test.to_s.split("href=\"").last.to_s.split("\"").first.to_s.split("/").last.to_s

感谢他试图帮助我!

【问题讨论】:

  • 你到底在问什么,你想解析一个 HTML sn-p 吗?向控制器发送参数?
  • 我有一个包含所有数据的表,并且我有一个包含用户名和 href 链接的“assigned_to”列。但我没有用户的 id,所以我不想从 href 链接中获取 id。
  • 这将由路由处理,它会将您发送到例如带有 params[:id] = 5 的 users#show 操作,阅读此guides.rubyonrails.org/routing.html
  • 您的意思是从您在浏览器中单击的行中提取记录的id

标签: ruby-on-rails href erb


【解决方案1】:

请求周期:

在 Rails 和 MVC 中,每个请求都遵循一个循环:

假设您输入http://localhost:3000/users

  1. 请求到达您的 Rails 服务器并通过 Rack 到达您的路由。
  2. Rails 选择与请求匹配的控制器和操作。
  3. Rails 运行您的 UsersController#index 并渲染视图。
  4. 呈现的 html 被发送回客户端。

那我为什么要告诉你这个?

ERB无关。

您只需渲染视图并将其发送给客户端 - 全部完成。客户端可以通过单击链接或提交表单进行交互。但这不是你的实际观点。

当用户单击链接时,它会启动一个全新的请求 - 这是一个全新的过程*。

路线和参数

路由有点像正则表达式 - 具有超能力。

如果您希望您的 rails 应用程序处理对/users/1 的请求,您需要创建一个路由:

 # config/routes.rb
 get `/users/:id`, to: 'users#show'

看到:id 部分了吗?这意味着我们可以从params[:id]获取url中传递的ID。

class UsersController
  def show
    @user = User.find(params[:id])
  end
end

当然,这样写你的路线是相当乏味的。所以我们改为:

resources :users

尝试从控制台运行rake routes 看看它做了什么。

【讨论】:

  • * 种。不过那是以后的话题了。
猜你喜欢
  • 1970-01-01
  • 2012-10-21
  • 2010-10-27
  • 1970-01-01
  • 2014-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-17
相关资源
最近更新 更多