Defect #28340

Updated by Go MAEDA over 2 years ago

Ruby 2.4.3
Rails 4.2.8
Redmine 3.4.4

Hello.

I tried to create plugin using step by step [[plugin tutorial]] plugin tutorial and there were some problems. I had to make several corrections to make plugin working. Since I'm newbie to ruby, rails, redmine - there is no confidence in rightness of my adjustments.

Paragraph "Extending the project menu":
1. I replaced @@polls = Poll.find(:all)@ with @@polls = Poll.all@
<pre>
def index
@project = Project.find(params[:project_id])
@polls = Poll.find(:all) # @project.polls
end
</pre>
2. After clicking 'Yes' or 'No' error page was displaying. To solve this I modified method 'vote' ('redirect_to' invocation) to:
<pre>
def vote
poll = Poll.find(params[:id])
poll.vote(params[:answer])
if poll.save
flash[:notice] = 'Vote saved.'
end

redirect_to :action => 'index', :project_id => params[:project_id]
end
</pre>
and added 'project_id' parameter in 'link_to' index.html.erb:
<pre>
<% @polls.each do |poll| %>
<p>
<%= poll.question %>?
<%= link_to 'Yes', { :action => 'vote', :id => poll[:id], :answer => 'yes', :project_id => @project }, :method => :post %> <%= poll.yes %> /
<%= link_to 'No', { :action => 'vote', :id => poll[:id], :answer => 'no', :project_id => @project }, :method => :post %> <%= poll.no %>
</p>
<% end %>
</pre>

Back