Rails 3 вложенных ресурсных переменных - PullRequest
1 голос
/ 18 мая 2011

У меня есть несколько вопросов, касающихся создаваемого объекта транзакции.

Транзакция принадлежит транзакциям займа и займа has_many.

Поэтому я настраиваю вложенный маршрут:

resources :loans do
  resources :transactions
end

Мой вопрос: как передать стоимость кредита в поле «Заем_идентификатора» транзакции?Это лучше всего сделать в контроллере или как скрытое поле в форме?Создает ли вложенный маршрут простой способ получения этой переменной?

Я предполагал, что это будет сделано автоматически, но поле было пустым, когда я сохранил его как есть.

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

если вы вызываете конкретную транзакцию, маршрут для new транзакции будет

loans/:loan_id/transactions/new

вы можете использовать ассоциацию моделей следующим образом: в вашем create действии:

@transaction = Loan.find(params[:loan_id]).transactions.build

таким образом ваш новый @transaction будет уже заполнен с помощью loan_id

0 голосов
/ 20 октября 2011

Подумайте о добавлении before_filter к вашему контроллеру и вызове у него частного метода для захвата :id во всех действиях. Поместите это в верхней части вашего transactions контроллера:

before_filter :load_loan

А потом после всех действий добавить:

private
def load_loan
  @loan.find(params[:loan_id])
end

Используйте это в своем действии new:

@transaction = @loan.transactions.build
...