지금 전화 번호를 검색하여 구입하고 데이터베이스에 트랜잭션을 기록 할 수있는 앱을 빌드하려고합니다.ActiveModel :: MassAssignmentSecurity :: Error in PhonesController # create
내가 생각한 방식은 컨트롤러가 두 개있는 것입니다. (1) find_numbers 컨트롤러는 매개 변수를 취하여 숫자를 검색합니다. 그리고 (2) 전화 컨트롤러는 선택된 번호를 구입하고 매개 변수를 데이터베이스에 저장합니다.
다음은 내가하려는 것의 다이어그램입니다. 동료 stackoverflower의 도움으로
http://www.stepanp.com/search-and-buy.jpg
, 나는 오류의 무리를 해결할 수 있었다, 그러나 나는 만들 PhonesController 번호에 find_numbers/쇼에서 게시 할 때 어떤 이유로, 나는 오류가ActiveModel::MassAssignmentSecurity::Error in PhonesController#create
수 없습니다 대량 할당 보호 특성 : original_number : 이름 : 전화 모델 attr_accessible을 가지고 있기 때문에, 그것은 내 양식이 배치되는 방식으로해야 할 것 같아요
을 twilio_number ~로 se 값. 여기
가 find_numbers/쇼 형태의 그것은 값 여기주위에 전화 []를 추가로 할 수있는 뭔가 PhoneController 번호가 활동 만들기의가있을 수 있습니다
<%= @numbers.each do |number| %>
<%= form_tag(:controller => "phones", :action => "create") do %>
<%= hidden_field "phone[:original_number]", params[:original_number] %>
<%= hidden_field "phone[:name]", params[:name] %>
<%= hidden_field "phone[:twilio_number]", number.phone_number %>
<div class="found_list">
<div class="found_phone_number">
<%= label_tag("phone[:number]", number.friendly_name) %>
</div>
<div class="choose_found_number">
<%= submit_tag("Choose This Number", :class => "btn btn-large btn-success") %>
</div>
</div>
<hr>
<% end %>
<% end %
def create
@user = current_user
@phone = @user.phones.new(params[:phone])
client = Twilio::REST::Client.new(@user.twilio_account_sid, @user.twilio_auth_token)
number = client.account.incoming_phone_numbers.create(
:phone_number => params[:twilio_number])
if @phone.save && number.present?
flash[:success] = "Phone Number Created!"
redirect_to user_path
else
render new_find_number_path
flash[:error] = "It looks like there were errors with the submission"
end
end
그리고 여기에 전화 모델입니다
# == Schema Information
#
# Table name: phones
#
# id :integer not null, primary key
# name :string(255)
# twilio_number :string(255)
# original_number :string(255)
# user_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
class Phone < ActiveRecord::Base
attr_accessible :original_number, :user_id, :name, :twilio_number
belongs_to :user
validates :name, presence: true
validates :twilio_number, presence: true
validates :original_number, presence: true
validates :user_id, presence: true
default_scope order: 'phones.created_at DESC'
end
양식의 "phone [: attribute]"는 이와 관련이 있다고 생각합니다. 그런 식으로 입력하지 않으면 어떤 이유로 생성 동작이 다음을 이해하지 못합니다. POSTED는 전화 모델 용이었습니다. 이것에 어떤 도움이 될 것
크게 이런 일이 왜 내가 알아낼 수