0

我在 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 的类别吗?

4

0 回答 0