【发布时间】:2022-01-23 19:27:38
【问题描述】:
我在理解如何在 rails 中设置路由以将对象传递到 URL 帮助程序时遇到问题。
我添加了一个新方法add_item
def add_item
@item = Item.create(item_params)
puts @hospital.inspect
puts @item.inspect
@hospital.items << @item
respond_to do |format|
if @hospital.save
format.html { redirect_to hospital_url(@hospital), notice: "Item was added to hospital" }
format.json { render :show, status: :ok, location: @hospital }
else
format.html { render :edit, status: :unprocessable_entity }
format.json { render json: @hospital.errors, status: :unprocessable_entity }
end
end
end
我添加了对应的路线
resources :hospitals do
member do
post :add_item
end
end
但是当我运行我的测试时使用
post add_item_hospital_url(@hospital), params: { item: { item_code: item.item_code, description: item.description, gross_charge: item.gross_charge } }
测试中的@hospital 不是nil,但在控制器上是。我究竟做错了什么? 我的路线似乎没问题。
add_item_hospital POST /hospitals/:id/add_item(.:format)
【问题讨论】:
标签: ruby-on-rails ruby