私はまだ初心者だと思いますが、もう一度あなたの助けが必要です。私はhabtm協会で働いているが、私には問題がある。私はコンピュータに関する情報を入力するフォームを持っています。協会habtmはマシンとオペレーティングシステムの間にあります。ActiveRecord :: ReadOnlyRecord(ActiveRecord :: ReadOnlyRecord):更新中
class Machine < ActiveRecord::Base
....
has_and_belongs_to_many :operatingsystems, :join_table => "machines_operatingsystems", :readonly => false
....
end
class Operatingsystem < ActiveRecord::Base
....
has_and_belongs_to_many :machines, :join_table => "machines_operatingsystems", :readonly => false
....
end
私はチェックボックスを使用してオペレーティングシステムを表示します。
私はマシンコントローラ
def update
params[:machine][:operatingsystem_ids] ||= []
@machine = Machine.find(params[:id], :readonly => false)
respond_to do |format|
if @machine.update_attributes(params[:machine])
flash[:notice] = 'Machine was successfully updated.'
format.html { redirect_to(@machine) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @machine.errors, :status => :unprocessable_entity }
end
end
end
の更新を修正しかし、私は例えば変動名を指定せずにマシンを編集し、更新をクリックした場合、私はエラーを次のようしている:あなたの助けを事前に
ActiveRecord::ReadOnlyRecord (ActiveRecord::ReadOnlyRecord):
app/controllers/machines_controller.rb:72
app/controllers/machines_controller.rb:71:in `update'
passenger (2.2.15) lib/phusion_passenger/rack/request_handler.rb:92:in `process_request'
passenger (2.2.15) lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:441:in `start_request_handler'
passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:381:in `handle_spawn_application'
passenger (2.2.15) lib/phusion_passenger/utils.rb:252:in `safe_fork'
passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:377:in `handle_spawn_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:163:in `start'
passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:222:in `start'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:253:in `spawn_rails_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:247:in `spawn_rails_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:246:in `spawn_rails_application'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:145:in `spawn_application'
passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:278:in `handle_spawn_application'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
感謝を。
私は、作成時に結合テーブルの3倍の関係を作成することに注意してください。しかし、私は理由を知らない。私は付け加えました:uniq => trueですが、これが正しい方法であるとは分かりません... – Goueg83460