我的账户索引页面列出所有账户,并且每个账户都有一个链接到“+ Service”;这应该将用户引导至/ my_services/new页面,并根据在“帐户”索引页面上单击的链接,使用适当的ID预填充account_id字段。Rails - 传递参数到link_to
我在每个页面的底部都有调试(params),并且我正在尝试,除此之外,我没有获得任何其他内容:controller和:action显示在我的参数中,作为/ my_services/new页面。
我一直在试图链接是这样的:
link_to "+ Service", "my_services/new", :account_id => acct.id
然后我也有在服务控制逻辑:
def new
@my_service = MyService.new
if params[:account_id]
@my_service.account_id = params[:account_id]
end
end
能有人这样做的正确的方式帮助吗?我还没有能够与我尝试过的一些讨厌的小黑客事情一起去。
编辑
事实证明,如果有人(在routes.rb中的shallow: true
选项可能)寻找这个答案在未来,嵌套的资源似乎是要走的路。我给这部分的routes.rb现在看起来是这样的:
resources :accounts, shallow: true do
resources :services
end
我的链接现在这个样子:
<%= link_to "+ Service", new_service_path(:service => { :account_id => @account.id }) %>
我不知道这是否会工作的link_to “服务”, “?my_services /新ACCOUNT_ID =” + acct.id –