我有这样的嵌套资源:
resources :cards do
resources :teammates
resources :formata, only: [:index, :show]
end
问题:我想显示卡片表(城市,地点,......)内可用的所有信息,以及属于卡片的队友的信息(名字,姓氏)=>在formata #show view。
我不知道如何设置强参数以便正常工作。
目前我在formata控制器:
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
用这样的网址触发:
http://www.appname.com/cards/:id_card/formata
我的观点formata / show.html.erb包含:
City <%= @Card.city %>
Place <%= @Card.place %>
渲染视图错误:
undefined method `city' for nil:NilClass
我的2个变量@card&amp; @teammates在formata#show工作。并且在#teammates(巢的相同级别)中工作得很好。
非常感谢任何帮助。 谢谢
答案 0 :(得分:1)
区分大小写。卡应该是小的,因为它来自控制器
<%= @Card.city %>
将其更改为
<%= @card.city %>