gpt4 book ai didi

ruby-on-rails-3 - Rails- 使用 best_in_place gem 对模型本身中定义的数组集合进行就地编辑

转载 作者:行者123 更新时间:2023-12-04 18:16:05 24 4
gpt4 key购买 nike

我看过RailsCasts#302其中描述了使用 best_in_place gem 的就地编辑。那里的性别选项 Ryan 使用 show.html.erb 中的数组并使其成为下拉框(请参阅他明确定义数组的性别部分)。

<p>
<b>Gender:</b>
<%= best_in_place @user, :gender, type: :select, collection: [["Male", "Male"], ["Female", "Female"], ["", "Unspecified"]] %>
</p>

但我想要的是我在模型本身内部定义了一个数组,例如:(因为我的数组元素并不简单且数量少)

例如:

用户.rb
class User < ActiveRecord::Base
def authencity_types
['Asian', 'Latin-Hispanic', 'Caucasian']
end
end

我将如何使用 best_in_place 将此数组元素用作下拉列表?句法。

PS:我确实尝试过这样的事情
<% @users.each do |user| %>
<%= best_in_place user, :authencity, type: :select, :collection => User::authencity_types %>
<% end %>

但它说未定义的方法 authencity_types

最佳答案

您正在 User 模型上定义一个实例方法,所以试试这个。

<% @users.each do |user| %>
<%= best_in_place user, :authencity, type: :select, :collection => user.authencity_types %>
<% end %>

或者,您可以将其定义为这样的类方法。
class User < ActiveRecord::Base
def self.authencity_types
['Asian', 'Latin-Hispanic', 'Caucasian']
end
end

或者,如果不需要动态,您可能需要考虑使用常量。

关于ruby-on-rails-3 - Rails- 使用 best_in_place gem 对模型本身中定义的数组集合进行就地编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11696707/

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