我在 Rails 4 中创建记录时遇到问题。用户应该能够添加 url 并以相同的形式为该 url 选择特定类别。问题是当我尝试添加 url 及其类别时,它只保存 url 而不是选择的类别。
每个用户可以有多个 url,每个 url 可以有多个类别。
class Url < ActiveRecord::Base
attr_accessible :url
belongs_to :user
has_and_belongs_to_many :categories
class Category < ActiveRecord::Base
has_and_belongs_to_many :urls
这是我添加新网址的表格
<%= form_for(@url) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.label :url %>
<%= f.text_field :url, placeholder: "Copy and Paste the url here" %>
</div>
<div>
<% Category.all.each do |category| %>
<div>
<%= check_box_tag "url[category_ids][]", category.id %>
<%= category.name %>
</div>
<% end %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
这是url控制器中的create方法
def create
@url = current_user.urls.build(params[:url])
if @url.save
flash[:success] = "Url added!"
render :template => "dashboard/index"
else
render :template => "dashboard/index"
end
end
正在保存 url,但您从复选框中选择的类别均未与 url 一起保存。我需要在 Rails 的 create 方法中添加更多内容以实现我也想保存 url 的类别吗?