在单个页面上显示多个视图文件-Rails

时间:2012-03-20 06:30:46

标签: ruby-on-rails ruby

在我的Rails插件中,我想在一个页面上显示多个视图文件。

假设我想在索引视图后添加一些视图。

我正在使用

<% render :partial => "show" %>

在我的index.erb

工作正常。但是为了更好的设计,我想从控制器那里做同样的事情。

所以,如果我在索引动作中写入我的控制器

render :partial => "show" 

只有show文件在页面上呈现。

我不能使用多个部分?

有任何意见/建议吗?

2 个答案:

答案 0 :(得分:2)

实际上,如果逻辑保留在视图中,那么MVC架构会更“真实”。我认为最简洁的方法是使用像你已经完成的渲染在索引视图中包含部分。

据我所知,你不能从控制器“追加”彼此的观点/部分。

答案 1 :(得分:0)

当我这样做时,我添加了三个显示页面视图的部分

_storethenameofparitalshowviewoptionindatabase1
_storethenameofparitalshowviewoptionindatabase2
_storethenameofparitalshowviewoptionindatabase3

给我的订单管理员。我是通过运行迁移来实现的

rails generate migration AddChose_Parital_Show_View_ToListings ordershowviewpartialoption:string

,然后将一个收藏集添加到我的列表控制器。

<div class="field">
    <%= f.label :ordershowviewpartialoption %>
     <%= f.select :WHAT THE USER SEES IN THE DROP DOWN MENU FOR PARTIAL SHOW VIEW OPTION 2, [['Tictactoe Game', 
'storethenameofparitalshowviewoptionindatabase1'],

['WHAT THE USER SEES IN THE DROP DOWN MENU FOR PARTIAL SHOW VIEW OPTION 2',
'storethenameofparitalshowviewoptionindatabase2'], 

['WHAT THE USER SEES IN THE DROP DOWN MENU FOR PARTIAL SHOW VIEW OPTION 3',
'storethenameofparitalshowviewoptionindatabase3']], {}, {class: "form-control"} %>
  </div>

不要忘记在controllers \ listings_controller.rb

change this...

def listing_params
   params.require(:listing).permit(:AAA, :BBB, :CCC)
end

to this...

def listing_params
   params.require(:listing).permit(:AAA, :BBB, :CCC, :ordershowviewpartialoption)
end

在models \ order.rb中,我有

belongs_to :listings

在models \ listing.rb I

have has_many :orders

在我的orders \ show.html.erb

<%= render @order.listing.ordershowviewpartialoption %>