2012-10-04 2 views
0

지금 전화 번호를 검색하여 구입하고 데이터베이스에 트랜잭션을 기록 할 수있는 앱을 빌드하려고합니다.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는 전화 모델 용이었습니다. 이것에 어떤 도움이 될 것

크게 이런 일이 왜 내가 알아낼 수

답변

0

감사,하지만 난 오히려 때 form_tag보다 새로운 대신 전화/렌더링 및 form_for (@phone)를 사용하여 모두 함께 피할

관련 문제