gpt4 book ai didi

ruby-on-rails - 如何在嵌套资源中传递parent_id来获取,在rspec中

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:10 24 4
gpt4 key购买 nike

我在 routes.rb 中有以下内容

resources :users, only: [:index, :update, :destroy] do
resources :expenses, except: :show
end

它生成以下路由,其中​​包括:

user_expenses GET    /users/:user_id/expenses(.:format)            expenses#index

我正在使用 devise 进行身份验证,我想在登录后检查我是否进入了 expenses_index 页面。我的测试:

it "should let a user see all the expenses" do
@user = FactoryGirl.create(:user)
login_with ( @user )
get user_expenses_path, { :user_id => @user.id }
expect( response ).to render_template( :index )
end

我收到以下错误:

 ActionController::UrlGenerationError:
No route matches {:action=>"index", :controller=>"expenses"} missing required keys: [:user_id]

我在 get 之前添加了一个 byebug,并验证了 @user.id 确实具有所需的 user_id。我做错了什么?

最佳答案

代替:

get user_expenses_path,  { :user_id => @user.id }

尝试:

get user_expenses_path( :user_id => @user.id )

user_expenses_path 是一种希望您将用户 ID 作为参数传递以构建所需路径的方法

您现在的方式是将用户 ID 作为第二个参数传递给 get 方法 - 它不需要它,只是将其丢弃

关于ruby-on-rails - 如何在嵌套资源中传递parent_id来获取,在rspec中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36325158/

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