gpt4 book ai didi

jquery - Rails - 嵌套表单 - 随机化用户发布的所有单个字段

转载 作者:行者123 更新时间:2023-12-03 19:35:46 24 4
gpt4 key购买 nike

用户可以通过帖子创建,通过单击“添加文本”按钮 [ 即时添加任意数量的嵌套文本字段。 new.html.erb ]

例如,如果用户创建一个包含三个文本字段的帖子
( 文本 1 文本 2 文本 3 )

enter image description here

然后是另一个包含三个文本字段的帖子
( 文本A 文本B 文本C )

enter image description here

这将当前显示在浏览器中 [ index.html.erb ] 作为:http://imgur.com/Nd0Erybhttp://imgur.com/rl0m60U由于 .order("RANDOM()") [ 索引操作 ]

但是,我正在尝试输出用户发布的所有文本字段的随机列表。例如,我想完整地输出和随机化( Text1 Text2 Text3 TextA TextB TextC )。换句话说,我的目标是单独输出所有文本字段的随机分类( TextA Text2 TextC Text1 Text3 TextB )

我无法通过我的 让它工作索引操作 & index.html.erb

任何帮助都会很棒!谢谢!

new.html.erb

<button id='addtext'>text</button>

<%= form_for @post, html: { multipart: true } do |f| %>
<%= f.fields_for :things do |ff| %>
<% end %>
<%= f.submit %>
<% end %>

post_controller.rb
class PostsController < ApplicationController

def index
@posts = Post.includes(:things).all.order("RANDOM()")
end

end

index.html.erb
<@posts.each do |post| %>
<% post.things.each do |thing| %>

<%= thing.try(:text) %>

<% end %>
<% end %>

架构
ActiveRecord::Schema.define(version: 20160227154831) do

create_table "posts", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end

create_table "taggings", force: :cascade do |t|
t.integer "tag_id"
t.integer "taggable_id"
t.string "taggable_type"
t.integer "tagger_id"
t.string "tagger_type"
t.string "context", limit: 128
t.datetime "created_at"
end

add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"

create_table "tags", force: :cascade do |t|
t.string "name"
t.integer "taggings_count", default: 0
end

add_index "tags", ["name"], name: "index_tags_on_name", unique: true

create_table "things", force: :cascade do |t|
t.text "text"
t.integer "post_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "order"
end

end

最佳答案

不确定我是否理解正确,但如果你想要当前用户的所有东西,随机排序,这将起作用:

class PostsController < ApplicationController
def index
@things = Thing.joins(post: :user).where(users: { id: current_user.id }).order("RANDOM()")
end
end

在数据库中改组(= 随机排序)也比在 ruby​​ 中改组更可取,因为它更快。

编辑:更优雅地,您可以添加一个 has_many :through 关系,以便能够通过执行 current_user.things 直接访问 current_user 的东西。但是我把这个练习留给你...... ;-)

关于jquery - Rails - 嵌套表单 - 随机化用户发布的所有单个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35753203/

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