2017-10-14 43 views
0

荫新轨道,荫得到上面的错误不知道why.i有从那里获得荫值和控制器存储路由错误创建行动

<%= 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其将POST请求以索引userstocks_path。并且如果从路由中删除“except :::index”,它会给出我在控制台中的模板错误.any解决方案

+0

你用'new_userstock_path'而不是'userstocks_path'来尝试,或者你想用什么方法发出请求? –

+0

其实userstock是一个脚手架,我不需要form.just要使用创建操作在userstocks控制器。 –

回答

1

原因是您需要根据REST索引定义方法类型link_to(方法类型为'得到')和创建(方法类型是'后')行动都有相同的路线,但不同的是他们的方法类型。您可以通过命令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"%> 

谢谢。