gpt4 book ai didi

ruby-on-rails - rails,在设置新对象时传入参数

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:14 25 4
gpt4 key购买 nike

在rails中,是否可以在创建新对象时传入参数,并相应地设置一些值?

例如,如果我有一个包含项目列表的屏幕,以及在顶部创建新项目的链接。如果我要在"new"链接旁边放置一个“项目类型”的下拉列表,我将如何将该值传递给项目 Controller 上的新函数并设置为@item.item_type?


在下面JC回复后编辑

如果在 Controller 中我有以下内容:

@entry = Entry.new

if (params[:type])
@entry.entry_type = params[:type]
end

创建新对象的链接是

<%= link_to "Make new article", {:controller => '/dashboard/entries', :action => :new}, :type => 1 %>

那么 new.html.erb 表单中的 entry_type 字段不应该设置为 1 吗?

最佳答案

您所描述的只是 Controller 的 new 操作的标准表单和相应的 create 操作以接收表单数据并创建对象。您可以生成脚手架文件以查看其工作原理的示例,但简而言之,它是这样的(假设是 RESTful 设计):

# new.html.erb
<% form_for @item || Item.new do |f| %>
<%= f.select :type, { 'type1' => 1, 'type2' => 2 } %>
<%= f.submit %>
<% end %>

# ItemsController#create
@item = Item.new(params[:item])
if @item.save
redirect_to @item
else
render :new
end

来自表单的数据在 Controller 的 params 散列中可用,并用于初始化新对象。

关于ruby-on-rails - rails,在设置新对象时传入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849533/

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