0

我在我的控制器中有一个变量@category,我想将另一个变量@source传递给它。
例如。 @category = Category.find(params [:id => @ source]) 这可能吗?Rails 4.2 - 将变量传递给。(params [:id])可能吗?

在我的控制器:

def show 
    @article = Article.find(params[:id]) 
    @source = @article.category_id 
    @category = Category.find(params[:id]) 
end 

我的观点:

<%= link_to @category, category_path(:id=>@source) %> 

我曾与各种连击和方法周围修修补补但没有奏效。

@article属于一个类别,并通过.category_id关联。 @category有一个单独的模型,我想通过@ article.category_id给@ category.find(params [:id])它的id。

我该怎么去做这件事?

(这是落实到导航树/面包屑)

+0

你有没有尝试过'<%=的link_to @Category,category_path(@source)%>'?这应该让链接工作,但你可能想访问@category的属性作为link_to的第一个参数?像'<%= link_to @ category.name,category_path(@source)%>'? – 2015-03-03 05:20:33

+0

Helios我已经尝试过,但ID不会传递给控制器​​。你对这个属性是正确的,我正在使用@ category.title。 – nvrpicurnose 2015-03-03 14:37:53

回答

1

我想你想通过文章找到类别,然后你可以这样做:

def show 
    @article = Article.find(params[:id]) 
    @category = @article.category 
end 

,因为在条关联模型。

现在看来,你可以使用:

<%= link_to @category.name, category_path(@category) %> 
+0

'link_to'的第一个参数应该是String。 '= link_to @ category.name,category_path(@category)'或者只是'= link_to @ category.name,@ category' – Santhosh 2015-03-03 09:23:01

+0

这几乎可以工作,但是id无法传递(即使我尝试了category_path(:id => @看起来像@ category不能访问类别属性,因为当我尝试link_to @ category.title时,它会抛出一个nomethoderror – nvrpicurnose 2015-03-03 14:43:11

+0

@Santhosh:更新了我的答案 – Kuldeep 2015-03-03 14:44:27