NilClass的形式,我下面this教程爲模型創建標籤(在我的情況下,模型後):未定義的方法'合併」的零:使用text_field_tag
控制器/ posts_controller.rb:
def create
@user = current_user
@post = @user.posts.new(params[:post])
if @post.save
redirect_to @post, notice: 'post was successfully created.'
else
render action: "new"
end
@post.tag!(params[:tags])
end
的意見/職位/ _form.html.erb:
<%= form_for(@post) do |f| %>
<%= render 'shared/error_messages' %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :content %><br />
<%= f.text_area :content %>
</div>
<div class="field">
<%= f.label :tags %>
<%= f.text_field :tags, params[:tags] %>
</div>
<div class="actions">
<%= f.submit %>
</div>
的意見/職位/ show.hmtl.erb:
<div class="tags">
<h4>Tags:</h4>
<%= render @post.tags %>
</div>
型號/ post.rb:
class Post < ActiveRecord::Base
has_and_belongs_to_many :tags
def tag!(tags)
tags = tags.split(" ").map do |tag|
Tag.find_or_create_by_name(tag)
end
self.tags << tags
end
end
型號/ tag.rb:
class Tag < ActiveRecord::Base
has_and_belongs_to_many :posts
end
db/migrate /(etc ...)_ create_tags.rb:
class CreateTags < ActiveRecord::Migration
def change
create_table :tags do |t|
t.string :name
end
create_table :tags_posts, :id => false do | t |
t.integer :tag_id, :post_id
end
end
end
現在,當我訪問的職位形成我得到這個錯誤:當我瀏覽一個帖子
undefined method `merge' for nil:NilClass
Extracted source (around line #13):
10: </div>
11: <div class="field">
12: <%= f.label :tags %>
13: <%= f.text_field :tags, params[:tags] %>
14: </div>
15: <div class="actions">
16: <%= f.submit %>
我得到這個錯誤:
SQLite3::SQLException: no such table: posts_tags: SELECT "tags".* FROM "tags" INNER JOIN "posts_tags" ON "tags"."id" = "posts_tags"."tag_id" WHERE "posts_tags"."post_id" = 7
Extracted source (around line #24):
21:
22: <div class="tags">
23: <h4>Tags:</h4>
24: <%= render @post.tags %>
25: </div>
26:
27: </div>
但我確實有這些表正如你可以在我的schema.rb中看到的文件:
create_table "tags", :force => true do |t|
t.string "name"
end
create_table "tags_posts", :id => false, :force => true do |t|
t.integer "tag_id"
t.integer "post_id"
end
任何建議來解決這個問題?
謝謝,這就像在教程中,奇怪。現在我可以看到一篇文章,但仍然得到'nil:NilClass'的未定義方法'合併'。任何建議來解決這個問題? – alexchenco 2012-02-25 07:18:41