Rails强参数嵌套资源Child和Outside



我有这样的嵌套资源:

resources :cards do
resources :teammates
resources :formata, only: [:index, :show]
end
  • 我使用formata#show来呈现替代卡#show
  • 卡片有许多队友(_M)

问题:我想以#show视图的格式显示Cards表中可用的所有信息(城市、地点…),以及属于该卡的队友的信息(名字、姓氏)=>。

我不知道如何设置强大的参数才能很好地工作。

目前我有一个格式化的控制器:

class FormataController < ApplicationController
before_filter :authenticate_crafter!
before_action :set_card, only: [:show]
def index
render ("formata/show")
end
def show
@card = Card.find(params[:card_id])
@teammates = Teammates.where(card_id: @card).take!
end
private
def set_card
@card = Card.find(params[:card_id])
end
def formata_params
params.require(:card).permit(:content, :city, :place)
end
end

用这样的url触发:

http://www.appname.com/cards/:id_card/formata

我的视图格式a/show.html.erb包含:

City <%= @Card.city %>
Place <%= @Card.place %>

渲染视图错误:

undefined method `city' for nil:NilClass

我的两个变量@card&队友们以#show的形式工作。在#队友(同级别的巢穴)中表现出色。

任何帮助都将不胜感激。谢谢

它区分大小写。卡片应该放在小箱子里,因为它来自控制器

<%= @Card.city %> 

将其更改为

<%= @card.city %>

最新更新