开发者

One Controller Action or Two for Ruby on Rails pages

I currently have one model, one controller with one action to list all the items in the model.

What I need to do is display different data from the model开发者_JAVA百科 in two separate views. Is there a way I can use one controller action to display different views based on params, or should I create another action?

The reason why I hesitate to create another action is because I'll have to essentially duplicate all the routing I setup for the previous action.

Thanks for any ideas.


I'm not entirely sure that you've provided enough information to give what could be considered a 'good' answer, but if I'm understanding you correctly, this should be possible.

For example, couldn't you do something like this?

def show
  @my_objects = MyObject.all

  if params[:full_view]
    render :action => 'show_full_fiew' and return
  end

  # if you get here, it will render the 'show' action
end

Let me know if that helps. If you could give some more information, I might be able to clean up this example to be a bit more informative.


You don't mention if you're using resource routes or not. If so, I'd just add a new option to your routes.

map.resources :products, :collection => { :some_great_name => :get }

You really shouldn't worry about adding views or new actions to your controller. An action should usually only have a few lines of code. If your controller actions start to grow in complexity you should think about moving that logic into your model.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜