gpt4 book ai didi

ruby-on-rails - 寻找一种更简单的方法来在 Rails 3 中呈现结果

转载 作者:太空宇宙 更新时间:2023-11-03 17:59:19 24 4
gpt4 key购买 nike

简介:

我正在做一个汽车经销商项目.. 销售从 A 到 Z 的每个品牌的汽车。我想制作一个小盒子,其中包含每个汽车名称的链接。单击 Mercedes for ex,将渲染所有梅赛德斯汽车,依此类推。这是我现在拥有的:

汽车 Controller

def mercedes
...
@cars = Car.where('carname_id = 1').order('created_at desc').paginate :page => params[:page], :per_page => 5
end

每辆车都有这样的代码,30 件..但还会有更多在我看来

<%= link_to 'Mercedes', :controller => :cars, :action => :mercedes %>

还有大约 30 行代码,每辆车一行。除此之外,我必须有 30 个 View 文件。好吧,有了 View ,我想我可以对所有汽车使用一个部分

问题:

如何用更少的代码来完成。也许它会有所帮助..我有一个名为 carnames 的表,我把所有的车都放在那里,所以我冷做类似的事情

<% @carnames.each do |car| %>
<%= link_to '<%= carname.name %>', :controller => :cars, :action => :<%= carname.name %> %>
<% end %>

我认为这将为我生成每辆汽车的链接而无需编写它们,问题出在 Controller 中。我不确定是否可以编写这么多代码。我希望我说清楚。感谢您的宝贵时间。

编辑

我的车是这样存放的:

我将汽车名称保存在一个名为 carnames 的表中,在 carmodels 中保留模型。每个表都有一个 ID 字段和名称字段。所以 Meredes E class for ex 将具有来自 carname 表的具有特定 id_carname 的汽车名称和来自 carmodel 表的 E 类具有特定的 id_carmodel.. 我拥有所有模型的所有 belongs_to 和 has_many。

最佳答案

你遇到麻烦是因为你做错了。有一个名为“梅赛德斯”的 Controller Action 敲响了警钟。理想情况下,你有一个品牌模型/ Controller ,它有很多车。例如:

class BrandsController < ApplicationController
def show
@brand = Brand.find params[:id]
end
end


class CarsController < ApplicationController
def index
@brand = Brand.find params[:brand_id]
@cars = @brand.cars.paginate(:page => params[:page], :per_page => 5)
end
end


class Brand < ActiveRecord::Base
has_many :cars

# With this, your car URL could be /brands/1-mercedes/cars,
# instead of just /brands/1/cars.
def to_param
"#{self.id}-#{self.name}"
end
end


class Car < ActiveRecord::Base
belongs_to :brand
end


resources :brands do
resources :cars
end


<h1><%= @brand.name %></h1>
<% @cars.each do |car| %>
<%= link_to car.name, [@brand, car] %>
<% end %>

作为引用,您可以使用 carname.name.to_sym,如下所示:

<% @cars.each do |car| %>
<%= link_to car.name, :controller => :cars, :action => car.name.to_sym %>
<% end %>

虽然传递 car 记录应该足够了:

<% @cars.each do |car| %>
<%= link_to car.name, car %>
<% end %>

但是,这并不能改变您正在编写糟糕的代码。

关于ruby-on-rails - 寻找一种更简单的方法来在 Rails 3 中呈现结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com