gpt4 book ai didi

ruby-on-rails - 如果 Rails 中的实例变量不为空,如何设置文本字段的值

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

我有一个新的产品表单,在这个表单中,我要么通过转到 products/new,要么通过在按下按钮时传入一个实例变量来使用来自 '特征'实例变量。

大部分代码都有效,我可以无误地填充表单,但我目前将文本字段的 value 属性设置为 nil 或预填充的值。如果我收到任何错误,表单将重新加载,并将任何现有字段的值设置为 nil,我的文本字段代码是:

<%= form_for @product, remote: true, html: { class: 'form-horizontal' } do |f| %>
<%= f.text_field :name,
class: 'form-control',
value: @feature.nil? ? nil : @feature.primary_name %>
<% end %>

我想知道是否有一种简单的方法可以仅在@feature变量有值,因此它不会将值设置为 nil,而是根本不会触及该值。

最佳答案

我会在 Controller 中设置该值:

# in products_controller.rb
def new
@feature # I assume @feature is assigned at this point
@product = Product.new
@product.name ||= @feature.try(:primary_name)
end

# and a plain view without special logic
<%= f.text_field :name, class: 'form-control' %>

另一种选择可能是在 Product 上使用一个特殊方法,该方法返回一个新的 Product 并设置了值:

# in product.rb
def self.new_from_feature(feature)
feature ? new(name: feature.primary_name) : new
end

# in products_controller.rb
def new
@feature # I assume @feature is assigned at this point
@product = Product.new_from_feature(@feature)
end

# and a plain view
<%= f.text_field :name, class: 'form-control' %>

关于ruby-on-rails - 如果 Rails 中的实例变量不为空,如何设置文本字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42443981/

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