创建操作的路由错误

时间:2017-10-14 18:54:09

标签: ruby-on-rails ruby-on-rails-5

我刚接触到rails,我得到上面的错误不知道为什么。我有一个链接从哪里获取值并存储在控制器

    <%= link_to "Add Stocks " ,userstocks_path(user: 
    current_user,short_code: @stock.short_code,stock_id: @stock.id ? 
    @stock.id : '' ),class: "btn btn-primary"%>

我的控制器创建动作

 def create
     if params[:stock_id].present?
     @userstock = Userstock.new(stock_id: params[:stock_id],user: current_user)
      end            
   respond_to do |format|
   if @userstock.save
    format.html { redirect_to users_my_portfolio_path   , notice: 'Userstock was successfully created.' }
    format.json { render :show, status: :created, location: @userstock }
  end
 end
end

我的路线

    resources :userstocks,except: [:show,:edit,:update,:index]

而不是在userstocks_path中发布请求,而是转到userstocks_path的索引。如果从路由中删除“except :: index”,则在控制台中给出模板错误.any解决方案

1 个答案:

答案 0 :(得分:1)

原因是您需要根据REST索引(方法类型为'get')定义具有link_to的方法类型,并且create(方法类型为'post')操作都具有相同的路由,但区别在于它们的方法类型。你可以通过命令rake routes | grep userstocks

看到它

试试这个 -

<%= link_to "Add Stocks " ,userstocks_path(user: 
    current_user,short_code: @stock.short_code,stock_id: @stock.id ? 
    @stock.id : '' ),:method=> :post, class: "btn btn-primary"%>
谢谢。