我有这样的嵌套资源:
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 %>