2013-08-24 3 views
0

레일즈 2 사이트에 폼 핸들러를 추가하려고하는데 html 폼 필드를 폼 핸들러 필드로 변환하는 문제가 있습니다.Rails 2의 text_field에 고유 ID와 이름을 설정하는 방법이 있습니까?

다음
ActionView::TemplateError (wrong number of arguments (1 for 2)) on line #284 of app/views/layouts/maptry.html.erb: 

이 필드입니다 : 내가

<%= text_field :newsavedmap, :html=>{ :value => 'New Map', :name=>'newsavedmapname', :id=> 'savedmap_name', :size => '30' } %> 

오류 같은 일을하려고 할 때

<% form_for @newsavedmap, :html=>{:id=>'createaMap'} do |f| %> 

I 오류가 점점 계속 :

양식 코드로 시작합니다. 어떻게 이것들을 Rails 2의 폼 핸들러 필드로 변환 할 수 있습니까?

<input id="savemap_name" name="newsavedmapname" size="30" type="text" value="New Map"></p> 

    <select id="startdrop" name="startthere"> 
    <OPTIONS HERE> 
    </select> 

    <select multiple id="waypoints" class="mobile-waypoints-remove" name="waypointsselected[]"> 
    <OPTIONS HERE> 
    </select> 

도움을 주셔서 감사합니다. Bigxiang의 접근 방식을 사용하여 Text_Field

에 대한

편집 한 오류 코드, 나는

Processing NewsavedmapsController#create (for IP at Date Time) [POST] 
    Parameters: {"endhere"=>"", "endthere"=>"SAMPLE ADDRESS 1", "newsavedmap"=>{"newsavedmapname"=>"test Map"}, "startthere"=>"SAMPLE ADDRESS 2", "starthere"=>"", "optimize"=>"on"} 

    ActiveRecord::UnknownAttributeError (unknown attribute: newsavedmapname) 

=> { "newsavedmapname"=> "테스트지도"}해야한다 "newsavedmap"와 라인을 얻을 그냥 읽으십시오

"newsavedmapname"=>"test Map" 

어떻게하면됩니까? 이것을 시도

def create 

    @newsavedmap = Newsavedmap.new(params[:newsavedmap]) 
    @newsavedmap.name = params[:newsavedmapname] 

답변

1

: 내 제어기는 시작

<% form_for @newsavedmap, :html=>{:id=>'createaMap'} do |f| %> 
    <%= f.text_field :newsavedmapname :id=>"savemap_name", :size=>30, :value=>"New Map"%> 
    <%= f.select :startthere, YOUR_COLLECTIONS, {}, {:id=>"startdrop"}%> 
    <%= f.select :waypointsselected, YOUR_COLLECTIONS, {}, {:id=>"waypoints", :class=>"mobile-waypoints-remove", :multiple => true}%> 
<% end %> 

것은 확실 YOUR_COLLECTIONS는 [ 'A', 'B', 'C'] 또는 [ "NAME1"과 같은 배열이 만들어 id1], [ 'name2', id2], [ 'name3', id3].

<% form_for @newsavedmap, :html=>{:id=>'createaMap'} do |f| %> 
    <%= text_field_tag :newsavedmapname, "New Map", :id=>"savemap_name", :size=>30%> 
    <%= select_tag :startthere, options_for_select(YOUR_COLLECTIONS), {:id=>"startdrop"}%> 
    <%= select_tag :waypointsselected, options_for_select(YOUR_COLLECTIONS), {:id=>"waypoints", :class=>"mobile-waypoints-remove", :multiple => true}%> 
<% end %> 

을하지만 열의 이름과 동일하게 매개 변수의 이름을 사용하지 왜 이해가 안 :

당신이 매개 변수가 "newsavedmapname"=> "테스트 맵"입니다 지속되는 경우,이 시도. 예를 들어, 귀하의 newsavedmap 모델에 "name"이라는 열이 있음을 알 수 있습니다. [: newsavedmapname]

def create 

    @newsavedmap = Newsavedmap.new(params[:newsavedmap]) 

    if @newsavedmap.save 
    ####### 
    end 
end 
+0

Bigxiang, 나는 여전히 오류로 실행 해요 직접

<% form_for @newsavedmap, :html=>{:id=>'createaMap'} do |f| %> <%= f.text_field :name , :value=>"New Map" %> <% end %> 

컨트롤러에서, 당신은 라인 @의 newsavedmap.name = params를 삭제할 수 있습니다 사용할 수 있습니다. 상기 참조하십시오. 또한 text_field 코드에 newsavedmapname 뒤에 쉼표가 누락되었을 수 있습니다. 내 코드 버전에 쉼표를 추가했습니다. – KDP

+0

답변을 업데이트했습니다. 확인해주세요. – Bigxiang

관련 문제