我想使用 link_to 订单控制器从我的视图提交信息,但我不知道如何编码。
我的模特
class User < ApplicationRecord
has_many :orders
has_many :stocks, through: :orders
end
class Order < ApplicationRecord
belongs_to :user
belongs_to :stock
end
class Stock < ApplicationRecord
has_many :orders
has_many :users, through: :orders
end
rails控制台下单的方式是
order = Order.new
user = User.last
stock = Stock.last
final = user.orders.create(user_id: user.id, stock_id: stock.id)
路线
Rails.application.routes.draw do
devise_for :users
devise_for :admins
get '/history', to: 'orders#history'
post '/stocks/:id/', to: 'stocks#order', as: 'order_stock'
resources :stocks
root 'stocks#index'
end
我想要一个来自 应用程序/视图/股票/显示 提交订单
帮助链接和控制器操作将非常感激。 先谢谢你了
因为您即将
create
一个新的 order
对象;因此使用 POST
作为 HTTP 方法听起来更合适。所以,
link_to "Order Now!", order_stock_path(params[:id]), method: :post
我想应该可以。
在stocks_controller中
def order
stock = current_user.stocks.find(params[:id])
stock.order.create
redirect_to stock_path(params[:id]), notice: 'Order created'
end
看起来应该是这样的
注意:在这种情况下,Rails 将向控制器发送 AJAX POST 调用;成功后它将相应地重定向。 AJAX 代码将嵌入链接代码附近。在浏览器中查看您自己。