2016-02-25 75 views
1

比方说,我有一个用户,投票和投票模型。如何在按下按钮时创建模型的实例

我的用户在注册时创建,民意调查通过用户有权访问的表单创建。

在向用户显示特定投票时,如何在用户单击投票选项时创建投票模型的新实例?

基本上我想创建一个新的投票模型实例,当用户点击一个按钮,传递当前user_id和poll_id作为参数以及他们选择的选项的值。

我的投票模式3属性:poll_id,user_id和value。

poll_id和user_id是轮询和用户表的外键,值只是记录所选的轮询选项。

我试图尝试通过调用Vote.create在选择这样的按钮实现这一点:

<a class="btn-floating btn-large waves-effect waves-light hoverable red left" href="<%= poll_path(@next) %>" > 
    <i class="material-icons">arrow_back</i> 
    <%= Vote.create %> 
</a> 

这是我应得的我的投票内内创建方法访问poll_id和USER_ID表决控制器

@current_user ||= User.find(session[:user_id]) if session[:user_id] 
@vote.user_id = @current_user 
@current_poll ||= Poll.find(session[:poll_id]) if session[:poll_id] 
@vote.poll_id = @current_poll 

基本上,我想知道什么是正确的轨道般的方法是去了解这一点。

声明:我对轨道非常陌生,意识到我可能会错误地提出这个问题!

回答

1

您在视图中不会执行Vote.create。你在控制器中这样做。

.erb文件中使用适当的helper,将vote_path,并传入poll_iduser_id,并value创建一个按钮。这会给你一个按钮,在你点击的时候,点击POSTcreate就会在你的VoteController上执行对象实例化和保存操作。从那里你做一个重定向到哪里是适当的给予create行动的结果。

您需要返回并返回read了解Rails如何使用ERB构造HTML文件以便在浏览器中进行渲染。你的问题表明你还没有真正把它打动。

0

这解决了我的问题:

<td><%= button_to '<' ,{:controller => 'votes', :action => 'create', :user_id => 1, :poll_id => @poll.id, :value => 0}, {:method => :post} %></td> 
相关问题