您好我想實現訂閱按鈕供應商的網站,所以需要呈現vendor_site_id隱藏屬性的訂閱表單。表單在訂閱控制器的範圍內工作正常,但我需要將其作爲partial _new.html.erb在vendor_site/show頁面中呈現。我無法找出解決這個問題的方法,任何機構都可以向我提出這個問題。如何渲染一個控制器的部分視圖到Ruby on Rails的另一個控制器
我的部分觀點訂閱/ _new.html.erb
<%= form_for(@subscription) do |f| %>
<div class="field">
<%= f.hidden_field @subscription.vendor_site_id, :value=>"1" %>
</div>
<%= button_tag(type: 'submit', class: "btn btn-primary") do %>
<i class="fa fa-user fa-fw"></i> Subscribe
<% end %>
<% end %>
現在,當我使這個在vendor_sites/index.html.erb
<h3>This is vendor site with id 1 just for the testing of subscription method</h3>
<%= render :partial => "subscriptions/new" %>
它拋出一個說,一個錯誤:
First argument in form cannot contain nil or be empty
我理解到目前爲止,我需要告訴這個vendor_site控制器關於@subscription f從其他範圍。 但我無法弄清楚如何? 我的訂閱類看起來是這樣的:
class SubscriptionsController < ApplicationController
def new
@subscription=Subscription.new
end
end
因爲你沒有定義在vendor_sites控制器的index action'@ subscription',所以' form_for @ subscription'爆炸。 – sevenseacat