我的帐户索引页面列出所有帐户,并为每个帐户提供一个“+服务”链接;这应该将用户重定向到/my_services/new页面,并在账户ID字段中预填充适当的ID,具体取决于在帐户索引页面上点击哪个链接。
我在每个页面底部使用debug(params),但是在我尝试的情况下,除了控制器和操作之外,我的参数中没有其他内容显示在/my_services/new页面上。
我一直在尝试的链接是这样的:
我在每个页面底部使用debug(params),但是在我尝试的情况下,除了控制器和操作之外,我的参数中没有其他内容显示在/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 } ) %>