簡體   English   中英

Ruby On Rails:將params傳遞給link_to以調用創建路徑

[英]Ruby On Rails: pass params to link_to to call the create path

我正在編寫一個報告模塊,允許用戶選擇報告的日期並將相應的報告導出到Excel。 因此,我使用活動模型來存儲日期。 在視圖中,我有一個供用戶下載報告的鏈接。 我希望它轉到控制器中的創建操作,以便我可以獲得具有正確日期的報告。

<%= render partial: 'reports/select_dates_form' %>
        <p>
            Download:
            <%= link_to "Excel", reports_A_reports_path(:report, :end_date => @report.end_date, :start_date => @report.start_date), :method => :post, format: "xls" %>
        </p>

在控制器中,我定義了一個create_param方法來定義params。

def create_params
    params.require(:reports_A_report).permit(:end_date, :start_date)
end

但是,它會出現錯誤“param丟失或值為空:reports_A_report”。 我嘗試以各種方式通過params但仍然無法成功。

在標准REST方案中,索引操作和創建操作都具有相同的URL(/ reports),並且僅在使用GET訪問索引並且使用POST訪問create時不同。 所以link_to :action => :create將生成一個指向/reports的鏈接,這將導致瀏覽器在單擊時執行/reports的GET請求,從而調用索引操作。

要調用create動作,請使用link_to {:action => :create}, :method => :post link_to link_to {:action => :create}, :method => :post ,明確告訴link_to您想要發布請求,或使用帶有提交按鈕而非鏈接的表單。

嘗試

<%= link_to "Text_to_dispaly", :controller => "controller_name", :action => "action_name, :method => :post" %>

此外, method是選擇HTTP方法(GET,POST,...)。 這不是常規的方法。

一定要查看Rails 3中 的外部輸入路由下的Rails路由 ,它們都是很棒的資源。

我希望我的回答能幫到你..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM