如何在Rails中获取link_to输出一个SEO友好的URL?
但是没有得到结果.在我的Rails 3应用程序中,我有:
# routes.rb
match '/articles/:id/:title' => 'articles#show'
resources :articles
# articles/index.html.haml
- @articles.each do |article|
= link_to article.title, article, :title => article.title
Run Code Online (Sandbox Code Playgroud)
但是,重新启动服务器后,链接没有标题:/ articles/1,/ articles/2
怎么了?
我需要在用户反馈中提供一个链接(通过setFlash方法).所以在我的processForm()函数中,我想使用link_to但由于symfony严格的MVC策略而无法使用.我尝试手动书写<a href='#">somelink</a>然后按原样打印.
有什么方法可以解决这个问题?
我正在尝试连接一个具有默认类'pjax'的自定义帮助程序,但也保留了在需要时添加类的功能.
例:
link_to_pjax('pagename', page_path, :class => 'current')
Run Code Online (Sandbox Code Playgroud)
所以帮助器默认添加'pjax',还有类'current',或传入的任何内容.
def link_to_pjax(name, path, options = {:class => 'pjax'})
link_to(name, path, options)
end
Run Code Online (Sandbox Code Playgroud)
语法吓坏了我.任何建议将不胜感激.
我是RoR初学者并使用Rails 3.2.3.
我的页面上有一个搜索表单,它会执行get请求并正确过滤结果.
我想添加按日期搜索产品的可能性.我插入了一个date_select并且能够选择日期,当搜索后页面刷新时,所选日期仍然在date_select上,因为我能够通过它params.
但是,我的问题是,当页面呈现产品时,他们有一个link_to到他们的show动作.我的目标是还在URL上传递选定的日期以在该link_to上执行搜索.
例如,如果用户选择20-06-2012至25-06-2012的日期,则仅显示在该时间范围内插入的产品(并且所有这些参数都在网址上)
但是显示每个显示产品的动作的链接仅是:
link_to <%= link_to product.name, product%>
Run Code Online (Sandbox Code Playgroud)
这呈现
http://localhost:3000/products/24 (例子)
我想渲染/展示的是:
http://localhost:3000/products/24?from=20-06-2012&to=25-06-2012
Run Code Online (Sandbox Code Playgroud)
此时执行搜索的所选日期不会存储在数据库中,但我需要从后一页的URL中获取它们,因此,在用户填写之前,需要通过2个不同的页面保留这两个日期.表单,然后将这些日期插入数据库中.
关于这个的任何提示?我搜索过,但我发现的只是如何传递模型中存在的变量,我不想使用cookie或会话变量.
在此先感谢,问候
在下面的代码中,我试图这样做,如果用户已经接受邀请,他们将能够点击"不参加"div来拒绝邀请.
这一点逻辑工作正常,但我试图得到它,所以无论用户是否已接受邀请,"不参加"div出现.
现在,只有在用户接受了邀请时才会显示div.
有没有办法使link_to语句有条件,但保留div无论如何?(也就是说,使得div始终存在,但如果用户接受了邀请,它只是一个链接?)
<% if invite.accepted %>
<%= link_to(:controller => "invites", :action => "not_attending") do %>
<div class="not_attending_div">
not attending
</div>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud) 我正在使用数组为我的rails link_to标签生成路径,似乎无法弄清楚如何添加锚选项.这是我的link_to标签:
<%= link_to pluralize(post.comments.count, 'comment'), [post.postable, post] %>
<%= link_to "Leave a comment", [post.postable, post] %>
Run Code Online (Sandbox Code Playgroud)
由于我正在为帖子使用多态关联(并且它们是嵌套路由),因此我不能简单地使用routes.rb文件中的资源助手生成的路径.
以前,我能够在自动生成的路径上使用锚选项,因为我没有使用与此模型的多态关联.这是看起来像:
<%= link_to pluralize(post.comments.count, 'comment'), project_post_path(@project, post, {anchor: 'comments'}) %>
<%= link_to "Leave a comment", project_post_path(@project, post, {anchor: 'new-comment'}) %>
Run Code Online (Sandbox Code Playgroud)
有关如何在使用数组生成url时将锚标记返回到link_to标记的任何提示?提前致谢.
我有两个型号,说User和Group
我知道我可以使用不同的解决方案访问每个对象的show动作:
# PATH
link_to user.name, user_path(user)
link_to group.name, group_path(group)
# URL
link_to user.name, user_url(user)
link_to group.name, group_url(group)
Run Code Online (Sandbox Code Playgroud)
但是Rails的魔法何时发生
# PATH
link_to user.name, user_path(user)
link_to group.name, group_path(group)
# is equivalent to
# PATH
link_to user.name, user
link_to group.name, group
Run Code Online (Sandbox Code Playgroud)
有没有办法插入来获取网址?
我可以这样写:
link_to user.name, send("#{user.class.name.downcase}_url", user)
Run Code Online (Sandbox Code Playgroud)
但是有更干净的方式吗?
有没有办法在Rails中为link_to方法发送特定的变量值?在我的情况下,当用户按下link_to按钮时,我希望变量@result为5而不是10.
<%= link_to t('meters'), full_report_path, class: 'btn btn-sm btn-success' %>
def full
@result = 10
end
Run Code Online (Sandbox Code Playgroud) 我正在 Ruby on Rails 中构建一项功能,允许人们做笔记、编辑和删除它们。我可以创建没有问题,编辑没有问题,但是当我去删除时,我被重定向到该笔记页面并且它没有被删除。
index.html.erb
<p id="notice"><%= notice %></p>
<h1>Session Notes</h1>
<table>
<thead>
<tr>
<th>Note</th>
<th>Session</th>
<th>Created at</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @session_notes.each do |session_note| %>
<tr>
<td><%= session_note.note %></td>
<td><%= session_note.session_id %></td>
<td><%= session_note.created_at %></td>
<td><%= link_to 'Show', session_note %></td>
<td><%= link_to 'Edit', edit_session_note_path(session_note) %></td>
<td><%= link_to 'Destroy', session_note, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
Run Code Online (Sandbox Code Playgroud)
session_notes_controller.rb
require 'pry'
class SessionNotesController < ApplicationController
before_action :logged_in_teacher, only: …Run Code Online (Sandbox Code Playgroud) 这是我的link_to方法:
<%= link_to 'Dispatch Now', order_path(order["objectId"]), :method => 'delete', :confirm => 'Are you sure?' %>
Run Code Online (Sandbox Code Playgroud)
我在rails 3项目中查看了我的旧ruby,这就是我在link_to帮助器中调用confirm的方式.
它似乎没有任何影响.
导轨4上的红宝石有什么变化会导致它停止工作吗?我在我的gemfile中有jquery-rails文件,我检查了我的application.js文件,一切看起来都很好.
可能有什么不对?