设置后,一个简单的具有多个带有导轨的直通标签模型。这样的事情
Private Function PostHTTP(ByVal URL As String, ByVal PostStr As String) As String
On Error Resume Next
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", URL, False
.SetRequestHeader "Content-type", "application/x-www-form-urlencoded"
.Send (PostStr)
PostHTTP = .ResponseText
End With
End Function
我想在帖子创建时将帖子与标签相关联。
通常使用Rails View可以通过以下方式解决:
class Post < ApplicationRecord
has_many :taggings
has_many :tags, through: :taggings
# Getter and Setter for all_tags vertial attribute
def tag_list
tags.map(&:name).join(', ')
end
def tag_list=(names)
self.tags = names.split(',').map do |n|
Tag.where(name: n.strip).first_or_create!
end
end
def self.tagged_with(name)
Tag.find_by_name!(name).posts
end
end
但是要做出反应,您需要先获取列表,所以我试图
<%= f.input :tag_ids, as: :select, collection: Tag.order(:name), label_method: :name, input_html: {multiple: true} %>
和Posts Controller上
resources :posts, except: :new do
get 'tag_list', to: 'posts/new'
end
在React方面
def create
@post = current_user.posts.build(post_params)
@post.tag_list = params[:post][:tag_list].join(',')
if @post.save
render plain: 'Posted successfully', status: 201
else
render json: @post.errors, status: :unprocessable_entity
end
end
并采用邮寄表格
componentDidMount() {
fetch("/posts/new/tag_list")
.then(response => response.json())
.then(data => this.setState({ tag_list: data }));
<Select
getOptionValue={option => option.name}
getOptionLabel={option => option.name}
isMulti
name="tag_list"
options={this.state.tag_list.map(({ id, name }) => ({
value: name,
label: name
}))}
className="basic-multi-select"
classNamePrefix="select"
/>
但是仍然没有得到列表并在帖子中显示错误。 那么,有人可以在这种情况下启发一个变通方法吗?