在Ruby on Rails应用程序我的工作(2.3.8),我有可以锻炼Ruby on Rails的有时嵌套资源
class Workout < ActiveRecord::Base
belongs_to :user
end
模型用户我也有Trainer->客户关系(都通过连接表与用户模型绑定) 用户可以为自己添加锻炼,但教练还可以为其客户添加锻炼。
我已经设置了路线如下:
map.resources :workouts
map.resources :clients, :has_many => 'workouts'
路线的这两套工作(即/锻炼和/客户/ 1 /锻炼)。我已经更新了workouts_controller使取决于是否有一个CLIENT_ID我将展示一组不同的锻炼
def index
if(params[:client_id])
@workouts = Workout.find_all_by_user_id(params[:client_id])
else
@workouts = Workout.find_all_by_user_id(@current_user.id)
end
我的问题是,如何设置我的意见正确工作。根据我得到索引的方式,我想以不同方式链接到添加或编辑屏幕。我应该只是有条不紊地做...
<% if (@client.nil?) %>
<%= link_to 'New workout', new_workout_path %>
<% else %>
<%= link_to 'New workout', new_client_workout_path(@client) %>
<% end %>
......还是有一些更简单的方法来拆分这两种情况?看来我在视图和控制器中会有很多条件,并且不知道这是否是处理这种情况的方式。
谢谢,我想我也必须为我的form_for方法做类似的事情。 – John 2010-07-23 17:59:32
您可能会发现'url_for'有助于在帮助器中构建链接。请参阅http://api.rubyonrails.org/classes/ActionController/Base.html#M000455 – bjg 2010-07-23 18:29:27