Rails强参数嵌套资源Child和Outside

时间:2013-12-24 15:58:01

标签: ruby-on-rails resources nested strong-parameters

我有这样的嵌套资源:

resources :cards do
    resources :teammates
    resources :formata, only: [:index, :show]
end
  • 我使用formata#show来渲染另一张卡片#show
  • 卡片有很多队友

问题:我想显示卡片表(城市,地点,......)内可用的所有信息,以及属于卡片的队友的信息(名字,姓氏)=>在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(巢的相同级别)中工作得很好。

非常感谢任何帮助。 谢谢

1 个答案:

答案 0 :(得分:1)

区分大小写。卡应该是小的,因为它来自控制器

<%= @Card.city %> 

将其更改为

<%= @card.city %>