您好我想实现订阅按钮供应商的网站,所以需要呈现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