diff --git a/app/models/blog.rb b/app/models/blog.rb index ea56fd0..7ce092a 100644 --- a/app/models/blog.rb +++ b/app/models/blog.rb @@ -53,7 +53,7 @@ class Blog < Folder def prepare_external_feed unless self.external_feed_data.nil? if self.external_feed(true) && self.external_feed.id == self.external_feed_data[:id].to_i - self.external_feed.attributes = self.external_feed_data + self.external_feed.attributes = self.external_feed_data.except(:id) else self.build_external_feed(self.external_feed_data, :without_protection => true) end diff --git a/app/models/external_feed.rb b/app/models/external_feed.rb index 91c3773..40f018a 100644 --- a/app/models/external_feed.rb +++ b/app/models/external_feed.rb @@ -10,7 +10,7 @@ class ExternalFeed < ActiveRecord::Base { :conditions => ['(fetched_at is NULL) OR (fetched_at < ?)', Time.now - FeedUpdater.update_interval] } } - attr_accessible :address, :enabled + attr_accessible :address, :enabled, :only_once def add_item(title, link, date, content) return if content.blank? diff --git a/test/unit/external_feed_test.rb b/test/unit/external_feed_test.rb index 09337b8..9aeebff 100644 --- a/test/unit/external_feed_test.rb +++ b/test/unit/external_feed_test.rb @@ -176,4 +176,13 @@ class ExternalFeedTest < ActiveSupport::TestCase end + should 'allow mass assign attributes' do + p = create_user('testuser').person + blog = fast_create(Blog, :profile_id => p.id, :name => 'Blog test') + + assert_difference 'ExternalFeed.count', 1 do + efeed = blog.create_external_feed(:address => 'http://invalid.url', :enabled => true, :only_once => 'false') + end + end + end -- libgit2 0.21.2