Я хочу передать атрибуты, связанные с двумя объектами, в путь, созданный из маршрута. В этом случае _url - это skip_contact_letter_url. contact_letter и letter передаются через партиал рендеринга. Клип ниже находится в частичном.
<%= link_to_remote "Skip Letter Remote #{contact_letter}",
:url => skip_contact_letter_url(contact_letter, letter),
:update => "update-area-#{contact_letter.id}-#{letter.id}" %>
<span id='update-area-<%="#{contact_letter.id}-#{letter.id}"%>'> </span>
Созданный мной маршрут выглядит так:
map.resources :contact_letters, :member => {:skip => :post}
А контроллер выглядит так:
def skip
@contact_letter = ContactLetter.new(params[:all])
@contact_letter.status = "skipped"
@contact_letter.date_sent = Date.today
#@contact_letter.date_created = Date.today
if @contact_letter.save
render :text => 'This letter was skipped!'
end end
Когда я смотрю на консоль, ни один из параметров contact_letter или letter не проходит.
Вот как это выглядит в результате маршрутов из рейк-маршрутов:
skip_contact_email POST /contact_emails/:id/skip(.:format) {:action=>"skip", :controller=>"contact_emails"}
Добавлены примечания:
Я думаю, что маршрут нужно изменить, чтобы я мог передать: contact_id и: letter_id, но не ясно:
map.resources 'contacts/:contact_id/letters/:letter_id/skip', :controller => 'contact_letters', :action => 'skip'