我正在嘗試爲產品創建註釋。不知何故,我無法將text_field中的值傳遞迴評論控制器。註釋在數據庫中創建,但表格的正文列未填充。無法將文本字段值傳遞給控制器4
我的產品型號是這樣的 -
class Product < ActiveRecord::Base
has_many :comments
accepts_nested_attributes_for :comments
end
我的評論模式是這樣的 -
class Comment < ActiveRecord::Base
belongs_to :product
end
我的意見控制器看起來是如下 -
class CommentsController < ApplicationController
def create
@product = Product.find(params[:product_id])
@comment = @product.comments.build(body: params[:comment_body])
@comment.user_id = session[:user_id]
@comment.product_id = params[:product_id]
if @comment.save
redirect_to selection_path(params[:product_id])
else
redirect_to selection_path(params[:product_id]), notice: "Please include a plain text comment only"
end
end
private
def comment_params
params.require(:comment).permit(comments_attributes: [ :body,:product_id ])
end
end
路線給出以下 -
get "store/prodselect/:id" => 'store#prodselect', as: :selection
resources :products do
get :who_bought, on: :member
post "comments/create" => 'comments#create', as: :create_comment
end
我可以使用下面的代碼,以顯示prodselect.html.erb評論 -
<% @comments.each do |comment| %>
<tr>
<td class="tbody" style="width:150px;"><%= comment.uname %>
<%= image_tag @product.user.pic.url(:thumb), :width=>50, :height=>50 %>
</td>
<td class="tbody" style="width:350px;"><%= comment.body %></td>
</tr>
<% end %>
這是我無法通過text_field值回評論控制器的地方。以下代碼和上面的代碼位於prodselect.html.erb中。此外prodselect是在存儲控制器的方法 -
<tr><td>
<%= text_field :comment, :body%>
<%= button_to 'Add comment' , product_create_comment_path(@product.id), :class => "buttonto" %>
</td></tr>
最後,在存儲控制器我prodselect方法是這樣的 -
def prodselect
@product = Product.find(params[:id])
@comments = Comment.where(product_id: params[:id])
@comment = Comment.new
end
我是新來的回報率,因此任何指針將不勝感激。我想知道爲什麼我無法將我的文本字段值傳遞給我的評論控制器。我試過使用text_area也失敗了。
由於提前
你能發佈你的完整表單嗎?你的代碼中有很多東西搞砸了 – Mandeep 2014-08-28 14:12:17
你可以發佈一些來自你的控制器動作的參數嗎?你可以在rails服務器端找到它 – RAJ 2014-08-28 14:16:03
嗨,這是在日誌中傳遞的參數 - 「comment」=> {「body」=>「Great Comment」}。我如何訪問控制器中的值? – pari 2014-08-28 22:54:16