Консультируй не работай как я хочу

Я создал refinanciamento, и мое шоу не корректно.

show.html.erb

<p>
  <strong>Nome:</strong>
  <%= @funcionario.pessoa.nome %>
</p>

<p>
  <strong>Matrícula:</strong>
  <%= @funcionario.matricula %>
</p>

Когда я помещаю @funcionario.first.pessoa.nome, это "работает", но, когда я возвращаю первое, я не хочу этого, конечно.

Мой контроллер:

  def show
    @funcionario = Funcionario.pesquisa_cpf(params[:pesquisa_func_cpf]).first
    @refinanciamento = Refinanciamento.find(params[:id])
  end

Например, когда я регистрирую refinanciamento, мой URL-адрес для показа: /refinancimento/100, этот refinanciamento имеет значения: id: 100, funcionario_id: 2 Мне нужно, где показано funcionario с этим refinanciamento. Как мне построить эту консультацию?

Мои модели:

class Refinanciamento < ActiveRecord::Base
  belongs_to :funcionario
(...)

class Funcionario < ActiveRecord::Base
  has_many :refinanciamentos
(...)

Я просто хочу показать номе и учебные планы funcionario, которые создали refinanciamento. Спасибо!

1 ответ

Решение

Во-первых, Rails является самоуверенной средой и предполагает несколько шаблонов, облегчающих жизнь разработчика, например, реализует все на английском, от имен классов до атрибутов. Таким образом, вы теряете слишком много программирования на своем родном языке (вы всегда можете перевести все тексты и прочее, код должен быть на английском).

Во-вторых, и право на проблему, у вас есть связь между refinanciamento а также funcionario, Если refinanciamentobelongs_to funcionarioкогда у вас есть refinanciamento объект, вы можете использовать @refinanciamento.funcionario и получить все свои данные, как nome а также matricula,

def show
  @refinanciamento = Refinanciamento.find(params[:id])
  # Here you can access funcionario's properties like
  # @refinanciamento.funcionario.pessoa.nome
  # @refinanciamento.funcionario.matricula
  # etc...
end
Другие вопросы по тегам