最常见的用法
访问 /jobs
例如,想访问 jobs#index
即 jobs
Controller 中的 index
这个 Action
<%= link_to "Jobs", jobs_path %>
当然也可以加上括号
<%= link_to("Jobs", jobs_path) %>
访问 /jobs/:id
例如,想访问 jobs#show
即 jobs
Controller 中的 show
这个 Action
<%= link_to job.title, job_path(job) %>
添加样式 CSS 或 ID
有时需要给链接加上样式,那么可以利用 class
或 id
<%= link_to("Add a job", new_job_path, class: "btn btn-default" id: "add_job") %>
使用 block
所谓 block
,其实就是一组代码,举个例子
def test
...
end
这里就是一个 block ,由 def test
开始,由 end
结束,中间可能包括多行代码。
而 link_to
也可以支持 block 的写法,特别是当需要在将多个元素一起作为超链接的显示内容时。
<%= link_to edit_admin_job_path(job) do %>
<% end %>
在上面例子中只是将一个 font-awsome icon 当作链接显示的内容,其实可以有很多条。
修改 HTTP 类型
默认情况下 link_to
中 HTTP 的方法为 GET
,这是可以修改的。
delete
<%= link_to("Delete", admin_job_path(job), method: :delete, data: { confirm: "Are you sure?"}) %>
或
<%= link_to("登出", destroy_user_session_path, method: :delete) %>
post
<%= link_to("Hide", hide_admin_job_path(job), method: :post, class: "btn btn-xs btn-default") %>
链接到图片
使用 image_tag
<%= link_to image_tag(tile.image.url), tile %>
也可以使用 link_to
的 block 来定义
<%= link_to title %>
<%= image_tag(title.image.url) %>
<% end %>
使用 image_path
<%= link_to 'Back to Image', image_path(@image) %>
给图片添加 alt
属性
<%= link_to image_tag(tile.image.url), tile, alt: "title" %>
其它
链接锚点
<%= link_to "Home", root_path(anchor: "home") %>
在新窗口打开
<%= link_to "Bing", "http://cn.bing.com", target: "_blank" %>
支持 javascript
添加 remote: true
来让链接来处理 javascript。
<%= link_to "Javascript", root_path, :remote => true %>
link_to_if
这个相当于 link_to
再加上一个条件判断
它的语法是:
link_to_if(condition, name, options = {}, html_options = {}, &block)
它会先判断条件,如果条件成立,则依照后面给定的 name
, options
等创建超链接,否则只会返回 name
。
<%= link_to_if(@current_user.nil?, "Login", new_user_session_path) %>
# If the user isn't logged in...
# => Login
<%=
link_to_if(@current_user.nil?, "Login", new_user_session_path) do
link_to(@current_user.login, “Logout”, destroy_user_session_path)
end
%>
# If the user isn't logged in...
# => Login
# If they are logged in...
# => my_username
Links
- How to use link_to in Rails
- ActionView::Helpers::UrlHelper