这是我正在开发的第一个web应用程序,我有一些设计问题,我有几本关于RoR3的书,但我似乎找不到问题的答案。我的应用程序基于Ruby on rails 3
我不想在这里寻找详细的答案,如果你能给我指一个我可以了解的主题名称,它可以回答我的问题,比如"名称资源"、"隐藏字段"。。。。。
我的问题:1-如何在视图A和控制器B之间发送信息。例如,当我点击创建员工时,我在"公司"的视图上,我正在为该员工调用"新视图",所以我现在在另一个视图上,如何将公司的ID传递给新员工操作?既然我现在的观点不同了?我不想使用嵌套资源在不同的控制器/视图之间发送信息的不同方式是什么
2-ruby URL:我可以通过URL查看模型中的am项:http://localhost:3000/Companies/1我不希望url包含项目的索引,每个公司都有一个名称,我想在url中显示这个名称,例如http://localhost:3000/Companies/myCompany如何更改rails的url结构?
对于您的第一个问题,您可以通过链接传递参数(假设您的视图可以访问员工和公司变量):
编辑:这应该有效:
= link_to "create employee", :controller => "employees", :action => "new", :company_id => @company.id
在Employees
控制器中:
def new
company_id = params[:company_id]
# check that company_id is not nil before doing stuff with it
end
我不知道为什么这样做会忽略任何额外的参数:
= link_to "create employee", new_employee_path, :company_id => @company.id
对于你的第二个问题,这就是你想要的。
- 在创建员工链接中将公司id作为参数传递
在控制器中,接收以下参数def newcompany_id=params[:company_id]。。。。结束
- 要使用某些字符串而不是id,请使用gem"friendly_id"请确保您的引用字符串应该是唯一的