2012-02-19 5 views
0

Rails 초보자 비트가 나와 함께하시기 바랍니다.Ruby on Rails에서 라디오 버튼과 link_to 사용하기

각 입력란에 라디오 버튼을 먼저 나열한 다음 입력란의 입력란을 텍스트로 나열하여 여러 항목을 표에 나열하려고합니다.

잘 작동하고있어 원하는 방식으로 표시하고 있습니다. 그러나 문제는 내가 버튼을 사용할 때마다입니다. 사용자가 라디오 버튼 중 하나를 선택하여 특정 래서 피를 선택한 다음, 페이지 상단의 보편적 인 Add, Edit, Delete 버튼 중 하나를 클릭하여 선택한 래서 피에 대한 각각의 작업을 수행하도록하는 것이 그 아이디어입니다. 그것은 나에게 지역 변수 또는 메소드`레시피를 '정의되지 않은 오류를 던지고

<!--Action buttons at the top of page, supposed to communicate with the radio buttons --> 
<%= link_to("Show", {:action => 'show', :id => recipe.id}, :class => 'action show') %> 
<%= link_to("Edit", {:action => 'edit', :id => recipe.id}, :class => 'action edit') %> 
<%= link_to("Delete", {:action => 'delete', :id => recipe.id}, :class => 'action delete') %> 

<% @recipes.each do |recipe| %> 
<tr> 
    <td><%= radio_button_tag 'recipe', recipe, @recipe == recipe %></td> 
    <td><%= recipe.total_calories %></td> 
    <td><%=........15 more fields 
</tr>` 
<% end unless @recipes.nil? %> 

:

는 지금까지 내 코드입니다. 나는 왜 나는 오류를 얻고있다; Ruby는 사용자가 라디오 버튼을 통해 선택하는 레시피를 정확히 알지 못합니다. 누군가 라디오 버튼을 동작 버튼과 통신하는 방법을 보여줄 수 있습니까?

답변

1

이렇게하는 가장 간단한 방법은 제출 단추 값으로 동작을 포함하는 양식을 만드는 것입니다. 같은 뭔가 :

<%= form_tag(PATH_TO_YOUR_CONTROLLER) do %> 
    <%= submit_tag("Show") %> 
    <%= submit_tag("Edit") %> 
    <%= submit_tag("Delete") %> 

    RECIPE_LIST_HERE 
<% end > 

그런 다음 컨트롤러가 제출 된 어떤 조치 레시피 찾아 볼 필요가있을 것이다 ([: 커밋] 나는 그가 PARAMS 아래에있을 것으로 판단 해, params [: 레시피]).

+0

link_to로 할 수있는 방법이 있습니까? 또는 너무 복잡하고 시간 소모적입니까? – lordmarinara

+0

link_to에 onClick 자바 스크립트 핸들러를 추가하여 액션을 포함하는 숨겨진 양식 필드를 설정하고 양식을 제출할 수 있습니다. 그러나 귀하의 목표가 링크처럼 보이게하는 것이라면 CSS를 사용할 수 있습니다. –

+0

어떤 이유로, "variableName = params [: recipe]"를 통해 내 컨트롤러에서 params [: recipe]에 액세스하려고 시도 할 때마다 변수를 기록하려고 시도 할 때마다 nil로 계속 나오게됩니다. 내가 제대로하고 있니? – lordmarinara