【发布时间】:2011-02-24 19:22:14
【问题描述】:
我想将与两个对象关联的属性传递到从路由创建的路径中。在这种情况下,_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 的参数通过。
作为路由的结果,这是从 rake 路由中的样子:
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'
【问题讨论】:
标签: ruby-on-rails routing controller