[英]Rails 5: Access create method from another controller
我目前正在開發客戶儀表板,客戶可以在那里查看新的報價,預訂等等。
現在的問題是我有一個reservations controller
和一個dashboards controller
我想在dashboards
文件夾的index.html.erb
顯示一個付款按鈕。 例如:
<% @services.each do |service| %>
<%= form_for([@service, @service.reservations.new]) do |f| %>
<div class="col-12 col-sm-4">
<%= f.submit "Bestellen", class: "btn btn-primary", style: 'float:right' %>
</div>
<% end %>
<% end %>
但是然后我得到以下錯誤:
ActionView::Template::Error (undefined method `reservations' for nil:NilClass):
這是我的預訂控制器:
def create
service = Service.find(params[:service_id])
if current_user == service.user
flash[:alert] = "Du kannst nicht dein eigenes Angebot kaufen"
elsif current_user.stripe_id.blank?
flash[:alert] = "Füge eine Zahlungsmehtode hinzu"
return redirect_to payment_method_path
else
@reservation = current_user.reservations.build(reservation_params)
@reservation.service = service
@reservation.price = service.price
charge(service, @reservation)
end
redirect_to dashboard_path
end
我的儀表板控制器
def index
@services = Service.all
end
因此,我認為我只想在我的_form.html.erb
文件夾中創建一個文件_form.html.erb
,然后在儀表板index
使用<%= render 'reservations/form %>
_form.html.erb
<%= render 'reservations/form %>
,但這是行不通的。
您需要使用循環變量而不是未定義的實例變量...
<% @services.each do |service| %>
<%= form_for [service, service.reservations.new] do |f| %>
<div class="col-12 col-sm-4">
<%= f.submit "Bestellen", class: "btn btn-primary", style: 'float:right' %>
</div>
<% end %>
<% end %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.