【问题标题】:Why does url_for [:new, Project] translate to new_projects_url (plural), not into new_project_url (singular)?为什么 url_for [:new, Project] 翻译成 new_projects_url (复数),而不是 new_project_url (单数)?
【发布时间】:2013-02-14 11:12:12
【问题描述】:
$ url_for [Project]
=> projects_url
$ url_for [:new, Project]
=> new_projects_url
$ url_for [:new, Project, :test]
=> new_project_test_url
$ url_for [:new, Project, nil]
=> new_projects_url

我发现url_for [:new, Project, :test] 特别有趣:这里的project 是单数!

任何人都知道如何从像[:new, Project] 这样的数组生成new_project_url(或路径)?

【问题讨论】:

  • 我发现url_for [:new, Project.name.underscore] 正在工作(感谢this other post),但没有更优雅的方式吗?

标签: ruby-on-rails rest routes url-for


【解决方案1】:
url_for([:new, :project])

会成功的。

【讨论】:

  • 在您的情况下,@projectProject 的一个实例。尝试对现有的 @project 调用 new 操作没有意义。
  • 糟糕,错字。实例变量可用于编辑操作。
  • 谢谢。这有帮助,但难道没有比Project.name.underscore 更容易从Project 中找到:project 的方法吗?
【解决方案2】:

当使用[:new, Project] 时,:new 是一个命名空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2019-04-13
    • 2020-11-02
    相关资源
    最近更新 更多