最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

关于url:rails 4 def to_param 2个模型

XAMPP案例 admin 420浏览 0评论

rails 4 def to_param with 2 models

在尝试创建友好的URL时遇到了一些奇怪的事情。

我有一个项目模型,该模型具有:

1
2
3
def to_param
“#{id}-#{name}”.parameterize
end

这使我的项目URL仅包含\\\\” ID \\\\”和\\\\” name \\\\”很好:

1
www.domain.com/items/ID-name

我也有一个类别模型(项目属于类别和用户模型),其中我具有与上述相同的def to_param定义,但是类别URL保持\\\\” unfriendly \\\\” no \\\\”名称\\\\”包括:

1
domain.com/categories/ID

我在类别表中具有名称列,并且具有值。我还将祖先用于类别模型。

我在下面尝试过但没有运气:

1
2
3
def to_param
[id, name.parameterize].join(“-“)
end

谢谢您的任何建议!

  • 请注意,to_param仅在将资源传递给链接帮助程序(link_to(@user.name, @user))或使用to_param user_path(@user.to_param)时,请确保不调用.id才有效。
  • gem可以完成您需要的有关友好ID网址,friendly_id的所有操作
  • 谢谢#papirtiger,那把我引到了apidock并得到了解决方案:)

Papirtiger的评论将我引向了解决方案。问题是我有类似以下的链接:

1
2
3
4
5
6
7
<% @category.children.in_groups_of(4, false) do |childs| %>
<tr>
<% for categories in childs %>
<td>
<%= link_to”../categories/#{categories.id}” do %><%= categories.name %><% end %></td>
<% end %>
</tr>

Beginners解决方案。 :)

去掉了丑陋的部分,现在可以使用了:

1
2
3
4
5
6
<% @category.children.in_groups_of(4, false) do |childs| %>
<tr>
<% for categories in childs %>
<td><%= link_to categories do %><%= categories.name %><% end %> (<%= Item.where(:category_id => categories.id).count %>)</td>
<% end %>
</tr>

转载请注明:XAMPP中文组官网 » 关于url:rails 4 def to_param 2个模型

您必须 登录 才能发表评论!