gpt4 book ai didi

ruby-on-rails-3 - 导轨 3 : How to get a custom restful member route without ID

转载 作者:行者123 更新时间:2023-12-04 16:24:40 25 4
gpt4 key购买 nike

我正在开发一个项目,用户可以通过一个简单的表单以及另外通过 FTP 将视频上传到某个目录,然后只需从 FTP 目录中选择文件,而不是通过表单上传。

我得到了以下非常标准的设置 videos_controller :

# routes.rb
resources :videos

# new.html.rb
form_for(@video) do |f|
...
end

Controller 中的 Restful Action 都是正常的,只是标准行为。上传有效,这不是问题。问题是如果我执行以下操作:
# routes.rb
resources :videos do
member do
post :from_ftp
end
end

# new.html.rb
form_for(@video, :url => from_ftp_video_url) do |f|
...
end

我收到错误: No route matches {:action=>"from_ftp", :controller=>"videos"} ,因为生成的路由是这样的:
from_ftp_video POST   /videos/:id/from_ftp(.:format)        videos#from_ftp

这似乎是正确的,因为它是成员(member)路线。但我不需要 :id URL 的一部分,因为我正在创建一个新的 Video 对象,不是通过表单而是简单地使用来自 FTP 目录的文件...所以它基本上是另一个 create行动,这就是为什么我想把它作为一个POST请求......

那么我该如何以最好的方式解决这个问题呢?

最佳答案

尽管所选答案对于 Vapire 的情况是正确的,但它不一定回答标题问题。如果您来到这里是为了寻找如何在没有 ID 的情况下获取成员操作,因为您不需要 ID,那么答案就有点不同了。

假设您实现了设置 current_user 的身份验证.您只允许用户编辑他们自己的个人资料。在那种情况下 users/:id/edit没有意义,因为 :id 由 current_user 方法决定。在这种情况下 /users/edit更有意义。

您可以更改 routes.rb 文件以创建路径中没有 id 的成员操作。

......而不是这个......

resources :user

...使用这个(注意多个资源)...
resource :user

关于ruby-on-rails-3 - 导轨 3 : How to get a custom restful member route without ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15433510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com