更新:而不是
@company = Company.find(params[:company_id]
中的 Reimbursements New Action
我使用了@company = Company.find_by_name(params[:company_id]
这会将网址中的id
替换为name
,但仍需要网址末尾的/reimbursements/new
。有什么想法吗?
概述:我有一个Companies
控制器/型号和一个Reimbursements
控制器/型号
A Company has_many reimbursements
Company
也有name
问题:
创建新公司时,指向新reimbursements
表单的链接为
localhost:3000/companies/:id/reimbursements/new
此网址很长,我希望它是:
localhost:3000/companies/company.name
这可能吗?我该怎么做呢?提前致谢!
答案 0 :(得分:0)
您可能希望在公司模型中添加永久链接字段。
然后使用路线
localhost:3000/companies/:permalink/reimbursements/new
现在在控制器中,找到公司永久链接而不是ID。
答案 1 :(得分:0)
我认为会是
get /companies/:name => reimbursements#new
Rails默认使路由到某个控制器操作是它看到的那个操作的第一个路由,因此请确保将其置于可能覆盖它的任何路由之上(即您可能拥有的任何报销路由)。正如马克斯所建议的那样,这不是一个很好的形式,公司的身份不会通过具有这种结构的参数传递