我试图从一个模型中略微改变形式。我正在做管理员可以创建不同车辆的网站的管理员部分。客户要求该网站需要单独的链接来创建不同的汽车。
这将是简化模型:
create_table "cars", force: true do |t|
t.string "model"
t.text "description"
t.integer "price"
t.string "car_type"
t.datetime "created_at"
t.datetime "updated_at"
end
网站会有这样的内容:
Create new Mercedes
Create new Seat
Create new Alfa Romeo
Create new Peugeot
etc
因此,表格中的car_type
可能包含Mercedes,Seat,Alfa Romeo,Peugeot等。当管理员点击某个链接时,会打开新页面,他可以在此处创建该类型的汽车。例如,如果他点击Create new Seat
,带有Seat徽标的新网站以及页面左侧/右侧的Seat汽车的一些随机图片。
根据点击的链接,汽车类型将自动设置如下:
<%= form_for @car do |f| %>
<%= f.hidden :car_type, "Seat" %>
<% end %>
我的问题是如何知道点击了哪个链接,以便根据要创建的汽车动态生成该字段?所以,像这样:
<%= form_for @car do |f| %>
<% if ????? Seat %>
<%= f.hidden :car_type, "Seat" %>
<% elsif ????? Mercedes %>
<%= f.hidden :car_type, "Mercedes" %>
<% end %>
<% end %>
我会根据选择的链接在该页面上生成不同的制造商徽标和其他内容。每辆车的形式都是一样的。
感谢您的建议:)
答案 0 :(得分:0)
对于您的汽车控制器,您已定义了路线。这为您提供了一些路径助手,如new_car_path
。如果您使用它来创建
new_car_path(car_type: "seat")
然后在你的控制器中你可以使用params[:car_type]
答案 1 :(得分:0)
您可以采取的另一种方法是为'Car_type'提供select_box并使用JS来监听'onchange'事件。
因此,当您选择“座位”作为车型时,页面会向您的控制器发送请求,然后从响应数据中填充该页面。
简而言之:
我希望我很清楚,如果没有,我可以提供有关如何使用这种方法的更多信息:)