我在這裏有一個rails項目。在控制器中,我有一個方法定義爲 single_output
,如果url類似於/single_output/1
,它會給我person_id=1
的信息,然後我想在同一個控制器中添加另一個方法group_output
,但需要調用single_output
。基本上我想要它做的是如果url是像/group_output/1
,它會給我的group_id=1
其中包括person_id
和這些person_id
將給我所有的信息。rails:定義一個新方法,同時調用另一個方法在同一個控制器中
我的解決辦法是這樣的:
控制器:
def single_output
person_id = param[:person.id]
result = Person.where(:person_id => person_id)
end
def group_output
group_id = params[:group_id]
person_ids = Group.where(:group_id => group_id)
person_ids.each do |person_id|
output = get '/single_output/' + person_id
end
end
路線:
match "School/single_output/:person_id(.:format)" => "School#single_output"
match "School/group_output/:group_id(.:format)" => "School#group_output"
但好像get
方法是不是要做到這一點的好辦法。
或者我想出了另一個想法:
redirect_to '/single_output/' + person_id
但它顯示Render and/or redirect were called multiple times in this action.